Sistemi Operativi Modulo I - uniroma1.ittwiki.di.uniroma1.it/pub/SO/SO1213AL/Sistemi... · Sistemi...
Transcript of Sistemi Operativi Modulo I - uniroma1.ittwiki.di.uniroma1.it/pub/SO/SO1213AL/Sistemi... · Sistemi...
Sistemi Operativi Modulo IPrimo canale (A-L)A.A. 2017/2018
Corso di Laurea in Informatica
Nozioni di Base
Igor Melatti
Sapienza Universita di RomaDipartimento di Informatica
Informazioni Generali sul Corso
Come ben sapete, ci sono 2 canali
Chi e del primo canale fa l’esame con me, chi e del secondocanale fa l’esame con la prof.ssa Stefa
Le uniche eccezioni ammesse sono quelle relative ai cambi dicanale ufficiali
ovvero, seguendo le istruzioni dihttp://www.studiareinformatica.uniroma1.it/laurea/
assegnazione-canale/cambio-canale
La precedente regola non vale per gli studenti in teledidattica,i quali faranno tutti l’esame con me, qualsiasi sia il lorocognome
Informazioni Generali sul Corso
Sistemi Operativi e un corso a 2 facce
lo stesso vale anche per Basi di Dati
Da un punto di vista delle lezioni frontali e dellemodalita d’esame, e diviso in 2 corsi indipendenti: modulo 1 emodulo 2
modulo 1 adesso, modulo 2 nel secondo semestre6 CFU per ogni moduloanche i docenti sono diversi
il sottoscritto fa eccezione: vi insegnero anche il modulo 2
Da un punto di vista della verbalizzazione, e un esame solo
su Infostud, troverete solo Sistemi Operativi, senza nessunriferimento ai modulil’esame verbalizzato vale 12 CFU
Informazioni Generali sul Corso
Per arrivare a verbalizzare, occorre superare entrambi i moduli
come detto, occorre fare un esame, con determinate regole,per superare il modulo 1e un altro esame, con altre regole ed un altro docente, persuperare il modulo 2anche le date degli appelli saranno diversele regole d’esame per ciascun modulo potrebbero prevederepiu di una singola prova per ciascun modulo
ad es.: scritto un giorno ed orale un altro
Il voto finale su Infostud sara la media aritmetica tra gli esamidei 2 moduli
Quindi, non verbalizzerete prima di giugno
a meno che non siate del terzo anno o piu...
Informazioni Generali sul Corso
Validita dei voti dei singoli moduli: c’e una regola semplice
I moduli possono essere superati in qualsiasi ordine
quindi, va bene anche superare prima il modulo 2 e poi ilmodulo 1
Una volta superato un modulo, si ha tempo fino all’annosolare successivo per superare anche l’altro
ad esempio: se si supera il modulo 1 a gennaio 2018, occorresuperare il modulo 2 entro settembre 2019ad esempio: se si supera il modulo 2 a settembre 2018, occorresuperare il modulo 1 entro settembre 2019se si ha diritto all’appello straordinario, allora anche novembre2019ad esempio: se si supera il modulo 1 a settembre 2018, e ilmodulo 2 a gennaio 2020, occorre nuovamente superare ilmodulo 1 entro settembre (o novembre) 2021
Informazioni Generali sul Corso
Da qui in poi, si trattera solo del primo modulo, primo canale
Docente: Igor Melatti
Dove potete trovare materiale: http:
//twiki.di.uniroma1.it/twiki/view/SO/SO1213AL/
SistemiOperativi12CFUModulo1Canale120172018
ci saranno anche informazioni sugli esami ed in generalesull’intero corso
Dove potete trovare materiale sugli anni passati: https:
//elearning2.uniroma1.it/course/view.php?id=203
necessaria autenticazione, da chiedere al prof. Gabrielli
Sono previste 25 lezioni (festivita comprese), se non ne saltanessuna
ogni settimana 2 lezioni da 2 ore e mezza
Regole per gli Esami
Ci sono 5 appelli d’esame nel corso dell’anno, piu due“straordinari”
uno a gennaio (subito dopo la fine del corso), uno finegennaio/inizio febbraio, due a giugno/luglio e uno a settembre2018i due appelli straordinari (verso novembre il primo e versoaprile il secondo) sono riservati a studenti fuoricorso, ripetenti,part-time e lavoratoril’appello straordinario di novembre fa ancora concettualmenteparte dell’A.A. 2016/2017, e sara quindi gestito dai precedentidocenti
Regole per gli Esami
Per partecipare agli appelli straordinari, occorre seguire leistruzioni pubblicate qui: http://www.
studiareinformatica.uniroma1.it/appelli-d-esame
Verranno ammessi agli appelli straordinari tutti e soli glistudenti che la segreteria didattica comunichera al docente
una volta ottenuto l’ok della segreteria, occorrera iscriversi suInfostud
Per gli appelli “normali” successivi al secondo, e necessaria esufficiente la prenotazione su Infostud
le iscrizioni su Infostud si chiuderanno sempre 2 giorni primadel giorno dello scrittoattenzione a distinguere tra appelli per il modulo 1 e il modulo2per i primi 2 appelli, limitatamente a chi e in corso,sara necessaria l’iscrizione ad un form apposito
Regole per gli Esami
Ciascun appello d’esame e composto da uno scritto e da unorale
E possibile partecipare a qualsiasi numero di esami (scritti e/oorali) nel corso dell’anno accademico
Per superare l’esame scritto occorre aver preso almeno 18
fa fede il voto dell’ultimo esame scritto sostenutonota bene: questo significa che non superare un esame scrittoinvalida eventuali esami scritti superati in precedenza
Il voto dell’esame scritto sara al massimo 25
sono possibili eccezioni a discrezione del docente
Chiunque abbia superato lo scritto puo accettare direttamenteil voto dello scritto stesso, senza un esame orale
sono possibili eccezioni a discrezione del docente (in caso didubbio di copiatura)
Regole per gli Esami
Ogni studente puo chiedere di alzare il voto dello scrittotramite un orale
Chi venga bocciato all’orale dovra nuovamente superare unesame scritto
L’orale puo essere anche sostenuto (a discrezione dellostudente) in un appello diverso da quello in cui ha superato loscritto
Occorre sempre iscriversi su Infostud (o sul form), sia per gliesami scritti che per quelli orali, con la seguente eccezione:
se si fa l’esame orale nello stesso appello in cui si fa lo scritto,basta iscriversi una volta sola (prima dello scritto)
Regole per gli Esami: lo Scritto
Le domande verteranno sempre sull’intero programma delcorso
Si tratta di un compito a quiz da fare direttamente alcomputer, in laboratorio
Nel caso in cui ci siano piu iscritti all’esame che posti inlaboratorio, l’esame si fara in piu turni, comunicati sul sito delcorso
Ci saranno 40 domande da fare in 30 minuti
Per ogni domanda, ci sono 4 opzioni, delle quali una solae vera
Tutti gli studenti hanno lo stesso compito, ma con ledomande (e le opzioni) mischiate
E possibile consultare copie cartacee di libro, slide, appunti
Niente tablet o cellulari
Regole per gli Esami: lo Scritto
Per ciascuno viene calcolato il punteggio come 2E − S , con Enumero di risposte esatte ed S numero di risposte sbagliate
quindi il punteggio va da -40 a 80
Per assegnare un voto da insufficiente a 25 a ciascunpunteggio, si valuteranno i punteggi di tutti i partecipantiall’esame, seguendo una distribuzione a campana di Gauss
conseguenza: se ci sono copiature, molti compiti avrannopunteggi vicini, e quindi il voto si abbassa. Morale: nonconviene copiarenon e necessario rispondere a tutte le domandechi fa il compito migliore rispetto agli altri ha il punteggiopiu alto
Per gli appelli successivi al primo, a questa valutazionepartecipano anche i punteggi ottenuti da tutti gli studentidegli appelli precedenti
morale: conviene cercare di passare il compito il prima possibile
Regole per gli Esami: l’Orale
Per accedere all’orale e necessario aver superato uno scritto(anche in appelli precedenti)
Per fare l’orale occorre risolvere degli homework
facoltativo: si puo sempre accettare il voto dello scritto
Normalmente, l’orale con homework funziona come segue:
verranno proposti 2 homework: uno a circa meta corso e uno afine corsoil testo e la scadenza degli homework verranno pubblicati sullapagina del corso
indicativamente, il primo homework andra consegnato intornoall’inizio di novembre, il secondo intorno alla fine di dicembrepassata la scadenza, non sara piu possibile consegnare glihomework
ogni homework e individuale
e possibile consultarsi con altri studenti, ma poi ognuno devescrivere la propria soluzione personale
Regole per gli Esami: l’Homework
Verranno effettuati controlli anti-copia, sia automatici chemanuali (a campione)
In caso di copiatura di un homework, verranno convocati tuttigli studenti coinvolti, e in mancanza di spiegazioni esaurientiverranno cancellati i voti di entrambi gli homework a tutti glistudenti coinvolti
Chi sceglie di fare gli homework dovra affrontare un orale diconvalida, che avra come unico argomento gli homework svolti
Per accedere all’orale di convalida, occorre aver superato loscritto
L’orale di convalida deve essere sostenuto entro settembre2018 (o novembre 2018 se si ha diritto all’appellostraordinario), e puo essere sostenuto una volta sola
Regole per gli Esami: l’Homework
Il voto di ciascun homework sara da 0 a 6 punti, chesara sommato al voto dello scritto
quindi superando lo scritto con 18 e possibile avere 30se il voto combinato supera 31, verra troncato a 31
Affinche il voto degli homework sia valido, e necessariosuperare ciascun homework con un punteggio strettamentemaggiore di 0 punti
bisogna quindi passare almeno un test di un esercizio
In caso di non superamento (o non sostenimento entro il2018) dell’orale di convalida, vengono cancellati i voti dientrambi gli homework
La correzione degli homework sara automatica, e il codice delcorrettore verra reso disponibile agli studenti
Regole per gli Esami: l’Orale di Convalida
Per chi consegna l’homework entro le scadenze che verrannoindicate, l’orale consistera in semplici domande sul codicedell’homework
il fine e quello di verificare che l’homework sia stato risoltoeffettivamente da chi lo ha consegnato
Per chi non consegna l’homework nei termini previsti,sara comunque possibile fare l’orale come segue:
il giorno dell’orale, occorre presentarsi con il proprio computer,dove devono essere caricati e funzionanti tutti gli homeworkverra chiesto di effettuare una modifica al codice di talihomeworke anche possibile consegnare un homework nei termini previsti(e fare solo l’orale di convalida su tale homework) e fare l’oralecompleto sull’altro
Regole per gli Esami: Tempistica Studente
int voto_modulo1() {
int voto, esito = 0, *voti = NULL;
if (ho_tempo_e_mi_va())
voti = esito_homework_con_deadline();
do {
do { voto = esame_scritto();
} while (voto < 18 || !sono_soddisfatto(voto));
if (voti != NULL) esito = orale_convalida();
else if (ci_provo()) esito = orale_con_modifiche();
else break;
if (!esito) voti = NULL;
} while (esito == 0);
voto = voto + (voti? voti[0] + voti[1] : esito);
return voto < 31? voto : 31;
}
Regole per gli Esami: Tempistica Docente
Per ogni appello:1 si fa lo scritto la mattina
eventualmente su piu turni
2 alla fine di tutti i turni dello scritto, si verbalizza (inpresenza!) chi puo e vuole verbalizzare
occorre avere i voti ad entrambi i moduli, e se si e fatto unmodulo nell’anno x , allora l’altro deve essere stato fattonell’anno x + 1
3 si fanno gli orali di convalida homework
con eventuale verbalizzazione
4 si fanno gli orali “normali”
con eventuale verbalizzazione
5 si fa la correzione (individuale) dello scritto
solo su esplicita richiesta
Sistemi Operativi: Esempi
Windows
ultima versione: Windows 10
macOS
ultima versione: macOS Sierra
Linux Ubuntu
ultima versione: Ubuntu 17.04 (Zesty Zapus)
Windows Phone, iOS, Android (da Google)
Sistema Operativo
Sfrutta le risorse hardware di un sistema computerizzato
uno o piu processorimemoria primaria (RAM)memoria secondaria (dischi)dispositivi di input/output
Il tutto per fornire un insieme di servizi agli utenti
Componenti di un Computer
Nozioni di Base: Parti Principali
Processore
il cervello del computer: si occupa di tutte le computazioni
Memoria Principale
volatile: se si spegne il computer, se ne perde il contenutotalvolta chiamata memoria reale o primaria
Moduli di input/output
dispositivi di memoria secondaria (dischi...), non volatiledispositivi per la comunicazione (schede di rete...)altri dispositivi: tastiera, monitor, stampante, mouse, ...
“Bus” di sistema
mezzo per far comunicare tra loro le parti interne del computer:processori, memoria principale, e moduli di input/output
Registri del Processore
Registri visibili dall’utente
permettono di minimizzare i riferimenti alla memoria principaleottimizzando l’uso dei registriusati o da chi programma in assembler o dai compilatori dilinguaggi non interpretatilinguaggi compilati (“vecchi”): C, C++, Fortran; linguaggiinterpretati (“nuovi”): Python, Java
Registri di controllo e di stato
usati dal processore per controllare l’uso del processore stessousati da funzioni privilegiate del SO per controllare l’esecuzionedei programmi
Registri “interni”
usati dal processore tramite microprogrammazionecomunicazione con memoria ed I/O
Registri Visibili dall’Utente
Gli unici che possono essere usati direttamente (con il loronome) quando si programma in linguaggio macchina (oassembler)
Possono contenere dati o indirizzi
Nel caso contengano indirizzi, possono essere
puntatori direttiregistri-indice: per ottenere l’indirizzo effettivo, occorreaggiungere il loro contenuto ad un indirizzo basepuntatori a segmento: se la memoria e divisa in segmenti,contengono l’indirizzo di inizio di un segmento (occorrera poianche un offset all’interno del segmento)puntatori a stack: puntano alla cima di uno stack
Registri Visibili dall’Utente
Gli unici che possono essere usati direttamente (con il loronome) quando si programma in linguaggio macchina (oassembler)
Possono contenere dati o indirizzi
Nel caso contengano indirizzi, possono essere
puntatori direttiregistri-indice: per ottenere l’indirizzo effettivo, occorreaggiungere il loro contenuto ad un indirizzo basepuntatori a segmento: se la memoria e divisa in segmenti,contengono l’indirizzo di inizio di un segmento (occorrera poianche un offset all’interno del segmento)puntatori a stack: puntano alla cima di uno stack
Registri Interni
Registro dell’indirizzo di memoria
Memory Address Register, o MARcontiene l’indirizzo della prossima operazione dilettura/scrittura
Registro di memoria temporanea
Memory Buffer Register, o MBRcontiene i dati da scrivere in memoria, o fornisce lo spazio dovescrivere i dati letti dalla memoria
Registro dell’indirizzo di input/output
I/O address register
Registro di memoria temporanea per l’input/output
I/O buffer register
Registri di Controllo e Stato
Contatore di ProgrammaProgram Counter, o PCcontiene l’indirizzo di un’istruzione da prelevare dalla memoria
Registro di IstruzioneInstruction Register, o IRcontiene l’istruzione prelevata piu di recente
Stato di ProgrammaProgram Status Word, o PSWcontiene le informazioni di stato, ad es: interrupt disabilitati
Codici di condizione (o flag)singoli bit settati dal processore come risultato di operazioniesempi: risultato positivo, negativo, uguale a zero, trabocco(overflow), ...
Vengono letti/modificati in modo implicito da opportuneistruzioni assembler
esempio: una jump modifica il PC
Esecuzione di Istruzioni
Due passi
Il processore legge (preleva, fase di fetch) istruzioni dallamemoria (principale)Il processore esegue ogni istruzione prelevata
Prelievo ed Esecuzione di Istruzioni
Il processore preleva l’istruzione dalla memoria principale
Il PC mantiene l’indirizzo della prossima istruzione daprelevare
Il PC e incrementato dopo ogni prelievo
Se l’istruzione contiene una jump, il PC verra ulteriormentemodificato dall’istruzione stessa
Registro dell’Istruzione
L’istruzione prelevata viene caricata nell’IR
Categorie di istruzioni
Interazione tra processore e memoriaInterazione tra processore e input/outputManipolazione di dati (include operazioni aritmetiche)Controllo (modifica del PC)
Caratteristiche di una Macchina Ipotetica
Esempio di Esecuzione di un Programma
Interruzioni
Interrompono la normale esecuzione sequenziale del processore
come conseguenza, viene eseguito del software “di sistema”,che tipicamente non e stato scritto dall’utente che staeseguendo un certo programma
Le cause sono molteplici, e danno luogo a diverse classi diinterruzioni:
da programmada timerda I/Oda fallimento hardware
Classi di Interruzioni
Interruzioni da input/output
generate dal controllore di un dispositivo di input/outputper la maggior parte, i dispositivi di input/output sonopiu lenti del processorequindi, il processore deve mettersi in pausa per aspettare che ildispositivo completi l’operazione correntesegnalano il completamento o l’errore di un’operazione di I/O
Interruzioni di programma, causate da:
overflowdivisione per 0riferimento a indirizzo di memoria fuori dallo spazio disponibileal programmatentativo di esecuzione di un’istruzione (macchina) illegale
Classi di Interruzioni
Interruzioni da input/output
generate dal controllore di un dispositivo di input/outputper la maggior parte, i dispositivi di input/output sonopiu lenti del processorequindi, il processore deve mettersi in pausa per aspettare che ildispositivo completi l’operazione correntesegnalano il completamento o l’errore di un’operazione di I/O
Interruzioni di programma, causate da:
overflowdivisione per 0riferimento a indirizzo di memoria fuori dallo spazio disponibileal programmatentativo di esecuzione di un’istruzione (macchina) illegale
Classi di Interruzioni
Interruzioni da timer
generate da un timer interno al processorepermettono al sistema operativo di eseguire alcune operazioniad intervalli regolari
Interruzioni da fallimento HW
Improvvisa mancanza di potenza (power failure)errore di parita nella memoria
Fase di Interruzione
Ad ogni ciclo fetch-execute, viene anche controllato sec’e stata un’interruzione
Se cosı e, il programma viene sospeso e viene eseguita unafunzione che gestisce l’interruzione (interrupt-handler routine)
Interruzioni: Trasferimento del Controllo
L’interrupt handler e una funzione particolare: nel programmautente non era prevista
Entra in gioco il sistema operativo: salva le informazioni(almeno registro di stato e program counter) e poi setta ilprogram counter
normalmente, questo lo fa o il programmatore (se scrivedirettamente in assembler) o il compilatore: e una chiamata afunzionesolo che stavolta la funzione non e stata scritta dalprogrammatore o dal compilatore: e “di sistema”inoltre, nel punto in cui avviene questa “chiamata”, ilprogramma utente non prevedeva affatto di effettuare lachiamata all’interrupt handler!infine, per funzioni “normali” salvare anche il registro di statoe solitamente superfluo, qui puo essere importante
Interruzioni: Trasferimento del Controllo
Interruzioni: Trasferimento del Controllo
Interruzioni: Modifiche a Memoria e Registri
Il processore sta eseguendo l’istruzione all’indirizzo N quandoarriva un’interruzione, da gestire con l’handler all’indirizzo Y
Interruzioni: Modifiche a Memoria e Registri
L’handler e completato, si torna all’indirizzo N + 1
Interruzioni Disabilitate
Interruzioni: Sequenziali ed Annidate
I/O Programmato
Il piu vecchio modo di fare I/O
L’azione viene effettuata dal modulo diI/O, non dal processore
Setta i bit appropriati sul registro di statodell’I/O
Niente interruzioni
Il processore controlla lo statusfinche l’operazione non e completa
I/O da Interruzioni
E un modo un po’ piu moderno per fareI/O
Il processore viene interrotto quando ilmodulo I/O e pronto a scambiare dati
Il processore salva il contesto delprogramma che stava eseguendo ecomincia ad eseguire il gestoredell’interruzione
Non c’e inutile attesa
Tuttavia, consuma molto tempo diprocessore, dal momento che ogni singolodato letto o scritto deve passare per ilprocessore
Programma: Flusso di Controllo
Programma: Flusso di Controllo
Programma: Flusso di Controllo
Accesso Diretto in Memoria
E il metodo di I/O usato neicomputer attuali
Le istruzioni di I/O tipicamenterichiedono di trasferire informazionitra dispositivo di I/O e memoria
Trasferisce un blocco di datidirettamente dalla/alla memoria
Un’interruzione viene mandataquando il trasferimentoe completato
Piu efficiente
Multiprogrammazione
Un processore deve eseguire piu programmicontemporaneamente
La sequenza con cui i programmi sono eseguitidipende dalla loro priorita e dal fatto che siano omeno in attesa di input/output
Alla fine della gestione di un’interruzione, ilcontrollo potrebbe non tornare al programma cheera in esecuzione al momento dell’interruzione
Gerarchia della Memoria
Dall’alto verso il basso
Diminuisce la velocita di accesso
Diminuisce il costo al bit
Aumenta la capacita
Diminuisce la frequenza di accessoalla memoria da parte delprocessore
Gerarchia della Memoria: Memoria Secondaria
Corrisponde all’outboard eall’offline storage
Memoria “ausiliaria” ed “esterna”
Non volatile: se si spegne ilcomputer, il contenuto rimane
Usata per memorizzare i filescontenenti programmi o dati
Gerarchia della Memoria: Memoria Cache
Anche nell’inboard memory ci sonoimportanti differenze di velocita
Infatti, la velocita del processoree maggiore della velocita di accessoalla memoria principale
Per evitare eccessivi tempi diattesa, tutti i computer hanno unamemoria cache
Memoria piccola e veloce, chesfrutta il principio di localita
Cache e Memoria Principale
Cache: Nozioni di Base
Contiene copie di porzioni della memoria principale
Il processore prima controlla se un dato e nella cache
Se no, il corrispondente blocco di memoria principale vienecaricato nella cache
Siccome vale la localita dei riferimenti, e probabile che il datoappena caricato serva ancora nell’immediato futuro
in generale, i futuri riferimenti in memoria ricadrannoprobabilmente nel blocco appena caricato
Gestione totalmente demandata all’hardware
il programmatore non “vede” la cache, neanche se usal’assemblerquindi, non la “vede” neanche un compilatoree neanche il sistema operativo, che pero la “imita” spesso
Cache vs. Memoria Principale
2n
K >> C ; |Tag | = log22n
K ; tipicamente, K = 4
Lettura dalla Cache
Cache: Nozioni di Base
Capacita della cache
cache anche piccole hanno un grande impatto sulleperformance
Misura dei blocchi
i dati scambiati tra memoria e cache sono in quantita multipledi un bloccoincrementare la misura del blocco aumenta il numero di accessiriuscitima incrementarla troppo e controproducente: saranno di piu idati che vengono rimossiil che abbassa la probabilita di accesso riuscito
Cache: Nozioni di Base
Funzione di mappatura
determina la locazione della cache nella quale andra messo ilblocco proveniente dalla memoria
Algoritmo di rimpiazzamento
sceglie il blocco da rimpiazzarealgoritmo Least-Recently-Used (LRU): si rimpiazza il bloccousato meno di recente
Politica di scrittura
determina quando occorre scrivere in memoriapuo accadere ogni volta che un blocco viene modificatopuo accadere quando il blocco e rimpiazzatooccorre minimizzare le operazioni di scritturaquesto vuol dire che la memoria puo trovarsi in uno stato“obsoleto”, ovvero non in linea con il contenuto della cache
Sistema Operativo
Sfrutta le risorse hardware di un sistema computerizzato
uno o piu processorimemoria primaria (RAM)memoria secondaria (dischi)dispositivi di input/output
Il tutto per fornire un insieme di servizi agli utenti
Strati e Utenti
Servizi Offerti da un SO
Esecuzioni di programmi
app(licazioni)servizianche piu applicazioni e servizi contemporaneamente
Accesso ai dispositivi di input/output
nel caso dei dispositivi di memoria di massa, tramite filesystem
Accesso al sistema operativo stesso
shell
Sviluppo di programmi
compilatori, editor e debuggersystem callsvisione semplificata della memoria RAM
Servizi Offerti da un SO
Rilevamento di e reazione ad errori
errori di hardware interno ed esternoerrori softwarerichiesta di un applicativo non soddisfacibile
Accounting (chi fa cosa)
collezione di statistiche dell’uso del sistemamonitoraggio delle performanceusato per capire cosa occorre migliorareusato per far pagare in base all’uso del sistema
Sistema Operativo
Un programma che controlla l’esecuzione dei programmiapplicativi
Un’interfaccia tra le applicazioni e l’hardware
Obiettivi di un sistema operativo
ConvenienzaEfficienzaCapacita di evolvere
Sistema Operativo
Responsabile della gestione delle risorse
funziona allo stesso modo del software “normale”e un programma in esecuzioneconcede il controllo del processore ad altri programmi
Il Kernel
La parte di sistema operativo che si trova sempre in memoriaprincipale
Contiene le funzioni piu usate
Letteralmente, sta per “nucleo”
Evoluzione dei SO
I sistemi operativi “primitivi” (anni Quaranta) erano moltodiversi da quelli attuali
Evoluzioni dovute principalmente a:
in seguito ad aggiornamento dell’hardware, o a nuovi tipi dihardwarenuovi servizicorrezione di errori
http://www.computerhistory.org/timeline/
Storia dei SO
Computazione seriale (anni Quaranta)
nessun sistema operativoper fornire comandi ad un computer, si usavano speciali“console” con spie luminose ed interruttori, e una stampanteper output
Storia dei SO
Computazione seriale (anni Quaranta)nessun sistema operativoper fornire comandi ad un computer, si usavano speciali“console” con spie luminose ed interruttori, e una stampanteper output
gia all’inizio l’input viene parzialmente semplificato condispositivi per leggere schede perforate (esistenti gia da 2secoli)
Storia dei SO
Semplice sistema non interattivo o batch (anniCinquanta/Sessanta)
programma esterno di monitoraggiosoftware per controllare sequenze di eventipossibilita di raggruppare lavori (jobs) da eseguire insiemeil programma, una volta concluso, ritorna il controllo alprogramma esterno di monitoraggio
Linguaggio di controllo dei job
da istruzioni al monitorche compilatore usareche dati di input usare
Caratteristiche Hardware
Protezione della memoria
non permette che la zona di memoria contenente il monitorvenga modificata
Timer
impedisce che un job monopolizzi l’intero sistema
Istruzioni privilegiate
alcune istruzioni macchina possono essere eseguite solo dalmonitorinterruzionii primi modelli di computer non le avevano
Protezione della Memoria
I programmi utente vengono eseguiti in modalita utente
alcune istruzioni non possono essere eseguite
Il monitor viene eseguito in modalita sistema
o modalita kernelle istruzioni privilegiate possono essere eseguitele aree protette della memoria possono essere accedute
Sistemi Batch: Sottoutilizzazione
Il 96% del tempo e sprecato ad aspettare i dispositivi di I/O
Programmazione Singola
Il processore deve aspettare che le istruzioni di I/O sianocompletate prima di procedere
Multiprogrammazione
Se un job deve aspettare che si completi dell’I/O, allora ilprocessore puo passare ad un altro job
Multiprogrammazione
Esempio
Istogrammi di Utilizzo
Uso del Processore
Prime 4 righe: media tra le percentuali del uniprogramming edel multiprogramming
c’e un errore, il valore per la CPU uniprogramming e 30%(media tra 70%, 10%, 10%)
Elapsed time: tempo per vedere completati tutti e 3 i job
Throughput: numero job completatiore
Mean response time: media dei tempi di completamento (nelcaso di uniprogramming: 5, 20, 30 → 18.3)
Sistemi Time Sharing
Letteralmente, sistemi a condivisione di tempo (dagli anniSettanta)
Uso della multiprogrammazione per gestirecontemporaneamente piu jobs interattivi
Il tempo del processore e condiviso tra piu utenti
Piu utenti contemporaneamente accedono al sistema tramiteterminali
Batch vs. Time Sharing
Batch Time SharingScopo principale Massimizzare l’uso del
processoreMinimizzare iltempo di risposta
Provenienza delledirettive al SO
Comandi del job controllanguage, sottomessicon il job stesso
Comandi dati daterminale
CTSS: Compatible Time-Sharing System
Sistema operativo anni ’60 che supportava il time sharing
Storia dei SO
Computazione seriale (anni Quaranta)
Semplice sistema non interattivo o batch (anniCinquanta/Sessanta)
multiprogrammazione
Time-Sharing: sistemi a condivisione di tempo (dagli anniSettanta)
Storia dei SO: Risultati piu Importanti
Processi
Gestione della memoria
Sicurezza e protezione delle informazioni (privacy)
Gestione dello scheduling e delle risorse
Strutturazione del sistema
Dal Job al Processo
Il concetto di processo include sia qello di job non-interattivoche quello di job interattivo
Incorpora anche un altro tipo di job che comincio amanifestarsi dagli anni Settanta: quello transazionalereal-time
ad es.: prenotazione biglietti aerei
Un’unita di attivita caratterizzata da:
un singolo flusso (thread) di esecuzioneuno stato correnteun insieme di risorse di sistema ad esso associate
Multiprogrammazione dei Processi: Difficolta
Errori di sincronizzazione
gli interrupt si perdono o vengono ricevuti 2 volte
Violazione della mutua esclusione
se 2 processi vogliono accedere alla stessa risorsa, ci possonoessere problemi
Programmi con esecuzione non deterministica
un processo accede ad una porzione di memoria modificata daun altro processo
Deadlock (stallo)
un processo A attende un processo B che attende A
Gestione della Memoria
Isolamento dei processi
Protezione e controllo degli accessi
Gestione (compresa allocazione/deallocazione) automatica
Supporto per la programmazione modulare (stack)
Memorizzazione a lungo termine
Metodi attuali: paginazione + memoria virtuale
Protezione dell’Informazione e Sicurezza
Disponibilita (availability)
il dover proteggere il sistema contro l’interruzione di servizio(DoS attacks)
Confidenzialita
garanzia che gli utenti non leggano informazioni per le qualinon hanno l’autorizzazione
Integrita dei dati
protezione dei dati da modifiche non autorizzate
Autenticita
il dover verificare l’identita degli utenti, o la validita dimessaggi e dati
Pianificazione e Gestione delle Risorse
Equita (fairness)
dare accesso alle risorse in modo egualitario ed equo
Velocita di risposta differenziata
a seconda del tipo di processo
Efficienza
massimizzare l’uso delle risorse per unita di tempo(throughput), minimizzare il tempo di risposta, e servire ilmaggior numero di utenti possibile
Elementi Principali di un SO
Struttura del Sistema Operativo
Il sistema viene visto come una serie di livelli
Ogni livello effettua un sottoinsieme delle funzioni del sistema
Ogni livello si basa sul livello immediatamente piu in basso,che effettua alcune operazioni di livello piu basso
Decomposizione del problema in vari sottoproblemipiu semplici
Livelli
Livello 1
circuiti elettricigli oggetti sono registri, celle di memoria, porte logichele operazioni sono, ad esempio, resettare un registro o leggereuna locazione di memoria
Livello 2
insieme delle istruzioni macchinaoperazioni come add, subtract, load, and store
Livello 3
aggiunge il concetto di procedura (o subroutine), conoperazioni di chiamata e ritorno
Livello 4
interruzioni
Livelli: Multiprogrammazione
Livello 5
processo come programma in esecuzionesospensione e ripresa dell’esecuzione di un processo
Livello 6
dispositivi di memorizzazione secondariatrasferimento di blocchi di dati
Livello 7
crea uno spazio logico degli indirizzi per i processiorganizza lo spazio degli indirizzi virtuali in blocchi
Livelli: Dispositivi Esterni
Livello 8
comunicazioni tra processi
Livello 9
salvataggio di lungo termine di file con nome
Livello 10
accesso a dispositivi esterni usando interfacce standardizzate
Livello 11
associazione tra identificatori interni ed esterni
Livello 12
supporto di alto livello per i processi
Livello 13
interfaccia utente
Architettura di UNIX
Kernel Tradizionale di UNIX
Kernel Moderno di UNIX