Upload
duongdieu
View
213
Download
0
Embed Size (px)
Citation preview
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 2
Sistema OperativoOgni computer ha un sistema operativo necessario per eseguire gli altri programmiIl sistema operativo, fra l’altro, è responsabile di• riconoscere i comandi di input (da tastiera) e di inviarne una copia sullo schermo• gestire l’uscita dei dati (modem, rete, stampante ecc.)• gestire l’archivio dei file (dischi)• gestire le unità di memoria aggiuntiva (dischi, dvd, cd, ecc.)• gestire la sicurezza (autorizzazione all’utilizzo del sistema).
Nei sistemi di grandi dimensioni il sistema operativo èanche responsabile della gestione e del coordinamento fra i diversi utenti che utilizzano il sistema
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 3
Sistema Operativo• Non facile da definire esattamente• definizione informale
– Quello che nel sistema non è applicazione o hardware
– Software che permette alle applicazioni di utilizzare in modo conveniente l’hardware
Utenti
HardwareSistema Operativo
ApplicazioniWord processing, compilatori, basi dati....
dispositivi I/O,dischi, CPU, memoria....
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 4
Sistema Operativo• Definizione Formale : Il sistema operativo è un insieme
di programmi, invisibili all’utente, che si interpongono tra l’hardware e i programmi applicativi/utility visibili all’utente (interfaccia utente) per governare l’hardware nascondendo le diversità di hardware al software applicativo.
• Il sistema operativo quindi forma uno strato di software che opera direttamente sull’hardware, isolando i dettagli dell’architettura hardware (attraverso i driver che sono parti di sistema operativo adattate alle specifiche caratteristiche dell’hardware) e fornendo un insieme di funzionalità e di astrazioni ad alto livello.
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 5
Obiettivi del sistema operativo
• semplificare e ottimizzare l’accesso allerisorse dell sistema
• garantire la correttezza dell’esecuzioneconcorrente
• assicurare la portabilità delle applicazioni• indipendenza dalla piattaforma:
– stesso hardware sono possibili diversi SO– stesso SO può “girare” su piattaforme HW
diverse
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 6
Sistema operativo e CPU
Struttura a livelli• Il livello 2 è il più basso al quale un utente può programmare la
macchina• Normalmente la programma a livello 5
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 7
Sistema operativo e CPU• Le unità funzionali principali sono:
– Gestione dei processi ( ogni programma in corso nel computer )– Gestione della memoria centrale– Gestione delle periferiche– File system
• L’insieme di questi moduli costituisce il nucleo del sistema operativo, denominato anche kernel. Il sistema operativo possiede inoltre una interfaccia per l`interazione con l`utente che è formata dall’insieme dei programmi di utilità o utilities.
• Esempio: in DOS i comandi copy e rename permettono di copiare e ridenominare i file; comandi analoghi in altri sistemi;
• In Windows interfacce grafiche permettono di dare comandi con interazione diversa (ad esempio click con il mouse).
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 8
Virtualizzazione delle risorse• le applicazioni e i programmi (che poggiano sul SO) vedono risorse
virtuali– ignorano i dettagli– eventuali altri programmi in concorrenza
• risorse virtualizzate– CPU: Multiprogrammazione (più programmi sono eseguiti
concorrentemente)– memoria: ciascun programma vede uno spazio di memoria
autonomo– I/O: la memoria di massa (dischi) e periferiche di I/O sono viste
dai programmi tramite il SO
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 9
Sistema operativo e CPU
Funzioni Sistema operativo • Gestione dei processi• Memoria virtuale• I/O dei file
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 10
gestione dei processi• processi concorrenti
– elaborati in parallelo su architetture multiprocessore– elaborati a rotazione (time sharing) su architetture uniprocessore
• problemi:– sincronizzare l’utilizzo delle risorse comuni (memoria centrale e
di massa, I/O) – garantire accesso in mutua esclusione– garantire la correttezza della elaborazione
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 11
gestione dei processi
stati di un processo
• running: in esecuzione sulla CPU
• blocked: bloccato in attesa di un evento (fine I/O, ...)
• ready: pronto a riprendere la sua elaborazione
scheduler: processo del SO che decide quale fra i processi ready mandare in esecuzione
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 12
gestione dei processi
scheduler: processo del SO che decide quale fra i processi ready mandare in esecuzioneIn un computer ci possono essere molti programmi in corso di esecuzione (caricati in memoria centrale) dello stesso utente o di utenti diversi. E’ compito di un programma del sistema operativo (schedulatore) commutare l’attività della CPU tra i vari programmi in corso di esecuzione dedicando a ciascuno una piccola porzione del tempo di elaborazione in modo che si abbia la percezione che tutti i programmi avanzino contemporaneamente.
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 13
gestione dei processii Sistemi operativi possono essere classificati nel seguente modo: multi-user : multiutente (due o più utenti utilizzano il programma (anche migliaia nei casi più grandi)multiprocessing : permette la possibilità che un programma sia eseguito da più processori (CPU)multitasking : permette che uno o più programmi siano eseguiti concorrentemente (anche dello stesso utente) multithreading : permette che diversi parti di un unico programma siano eseguite concorrentemente.
Usano il time sharing, condivisione del tempo fra più utenti o più programmi•Il processore centrale è commutato velocemente da un programma ad un altro
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 14
gestione dei processi•Windows: è un prodotto di Microsoft con licenza commerciale adatto a qualsiasi hardware di tipo PC compatibile. In realtà è formato da varie famiglie di sistemi operativi diversi destinati a categorie diverse di computer. Gliesempi che seguono sono tutti caratterizzati dall’appartenere ad una unica famiglia di Windows chiamata genericamente “Win32” per indicare che sfruttano la capacità di indirizzamento a 32 bit offerta dalle CPU Intel o compatibili a partire dall’80386
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 15
gestione dei processi
•Windows:•Windows 95/98/ME/XP-HOME: sono sistemi operativi multiprocesso ( NON vuol dire multiprocessor !! ) e monoutente destinati all’utilizzo come workstation in un ambiente preferibilmente non di rete.•Windows NT-WKS/2000-WKS/XP-PRO: sono sistemi operativi multiprocesso e monoutente destinati all’utilizzo come workstation particolarmente adatti all’ambiente di rete.•Windows NT-SRV/2000-SRV/2003-SRV: sono sistemi operativi multiprocesso e multiutente destinati all’utilizzo come minicomputer (detti anche server) in ambiente di rete.•Windows CE: è una versione particolarmente alleggerita adatta ai computer palmari ma che può essere utilizzata anche negli embedded computer.
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 16
gestione dei processi
•Unix: è una ampia famiglia di sistemi operativi prodotti da varie aziende con licenza commerciale nel rispetto di standard comuni (Open Systems) e adatti a vari tipi di hardware compreso il tipo PC compatibile. Viene utilizzato sia per la realizzazione di server che di workstation. Gli standard Open Systems sono insiemi di norme pubbliche che specificano le regole che il software deve rispettare e differenziano questi sistemi operativi dai sistemi proprietari le cui regole di funzionamento invece non sono rese note dal produttore.
•Sono sistemi operativi multiprocesso e multiutente
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 17
gestione dei processi
Linux: è un sistema operativo che deriva da Unix ma è prodotto con licenza “Open Source” da vari produttori che in questo caso vengono
chiamati “distribuzioni”. E’ adatto all’ hardware PC compatibile, sfrutta la capacità di indirizzamento a 32 bit ed è multiprocesso e multiutente. Può essere usato sia come minicomputer (server), e in questo ruolo è stato un potente motore di sviluppo della rete Internet, sia come workstation non
utilizzando in questo caso la sua funzione di multiutenza. Le più famose distribuzioni sono Red Hat, Fedora, Mandrake, Suse,
Debian, Slackware, Knoppix …
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 18
gestione dei processiMac OS: è un prodotto di Apple con licenza commerciale adatto agli hardware di tipo MacIntosh. E’ stato il primo sistema operativo con
interfaccia utente grafica (1984). Sebbene sia molto meno diffuso dei precedenti riveste una grande importanza nel campo delle workstation per
usi specialistici (grafica, architettura …).
L’ultima versione ha una base UNIX di OpenStep completata con l'interfaccia grafica e le molte tecnologie ad alto livello del Mac OS
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 19
memoria virtuale– Ogni programma in corso di esecuzione (processo), compreso il
sistema operativo, occupa una parte della memoria centrale in cui risiedono le sue istruzioni codificate ed i suoi dati.
– Al crescere dei processi la memoria RAM diviene rapidamente insufficiente, per cui il sistema operativo fornisce ai processiun’area di memoria centrale “virtuale” ottenuta da un opportuno spazio riservato nella memoria di massa.
– Il sistema operativo fa in modo che questa memoria di massa sembri (per questo si chiama virtuale = finta) allocata al processo come se fosse memoria centrale ma questa apparenza è dovuta a continui “caricamenti” e “scaricamenti” fatti dal sistema operativo tra memoria centrale fisica e blocco di memoria virtuale della memoria di massa (hard disk).
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 20
memoria virtuale– L’operazione quindi è trasparente per il programma in corso di
esecuzione che non si accorge di non possedere tutta la memoria centrale che gli serve perché ogni volta che la utilizza il sistema operativo gliela copia dalla memoria di massa scaricandola quando non serve più ma le prestazioni complessive del sistema ne sono influenzate se si pensa ai tempi medi di accesso di un disco di media qualità (decine di mS).
– Questo meccanismo spiega perché uno dei fattori principali nelle prestazioni di un computer è la quantità della memoria centrale.
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 21
memoria virtuale• memoria virtuale:
– lo stesso spazio di memoria è diviso fra piùprogrammi
– ogni programma vede uno spazio diindirizzamento più ampio di quello effettivamentedisponibile
• spazio indirizzi: – virtuali: dipende dalle modalità di indirizzamento– fisico: dipende dalle dimensioni della memoria
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 22
memoria virtuale• programmi usano lo spazio virtuale• lo spazio virtuale è allocato in memoria secondaria
(dischi)• si mantiene in memoria solo un sottoinsieme dello
spazio virtuale (spazio logico)• si trasferiscono quando servono le parti dello spazio
virtuale alle quali il programma fa riferimento• la gestione è fatta dal SO (trasparente
all’utente/programmatore)• PROBLEMA: traduzione indirizzi; efficienza
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 23
memoria virtuale: paginazione
• modo semplice di organizzare la corrispondenza fra indirizzi virtualie fisici
• lo spazio di memoria (fisico e virtuale) è organizzato in pagine (0.25-4 KB), della stessa dimensione
• quando serve un dato in memoria si trasferisce tutta la pagina che lo contiene
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 24
memoria virtuale: paginazioneSpazio fisico in Memoria RAM, Memoria fisica del computer suddivisa in 8 pagine
Spazio logicosu disco
Spazio logico
Organizzazione logicadel processo 1
2 pagine logicheOrganizzazione logica
Del processo 24 pagine logiche.
Non trova 4 paginefisiche contigue
PL0PL1
PF1
PF2
PF3
PF5
PF4
PF6
PF7PF8
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 25
memoria virtuale: paginazione
• la struttura dello spazio virtuale si riflettenella struttura degli indirizzi– offset: lunghezza della pagina– k bit più significativi: numero della pagina
• indirizzi fisici hanno la stessa struttura
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 26
memoria virtuale: paginazione• Il programma viene suddiviso in un certo
numero di sezioni, di dimensioni fisse e uguali fra loro, dette pagine logiche, e in corrispondenza organizzando allo stesso modo anche la memoria fisica in pagine fisiche, della stessa dimensione delle pagine logiche.
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 27
memoria virtuale: paginazione
Spiazzamento relativo all’inizio della pagina specificata dai k bit iniziali, in pratica dice quanto èlunga la pagina
• i programmi specificano indirizzi virtuali• l’indirizzo fisico è diverso• prima di accedere in memoria bisogna tradurre l’indirizzo virtuale in
indirizzo fisicoNota Bene: l’indirizzo virtuale è fisso, quello fisico può cambiare nel
corso dell’esecuzione
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 28
memoria virtuale: paginazione• con la memoria a pagine
– posso avere uno spazio fisico piccolo ma uno spazio virtualegrande
– posso utilizzare la memoria (piccola) per più programmicontemporaneamente
• due pagine vicine (nello spazio logico) possono essere in postidiversi dello spazio fisico– una su disco e l’altra in memoria centrale– tutte e due su disco (o memoria centrale) ma con indirizzi fisici
diversi
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 29
memoria virtuale: traduzione indirizzi
• La traduzione degli indirizzi avviene a cura della CPU (prima diaccedere in memoria fisica)
• La corrispondenza tra pagine virtuali e pagine fisiche (page frames) viene mantenuta nella Tavola delle Pagine (nella CPU) e viene gestita dall’hardware aggiuntivo Memory Management Unit presente nella CPU
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 30
memoria virtuale: traduzione indirizzi
tavola dellepagine
contiene la corrispondenzafra indirizzovirtuale (o logico) e indirizzo fisico
Numero pagina logica(Due )
Numero pagina fisica ( Sei )
Lo spiazzamentorispetto all’inizio
della paginaè uguale sia per la pagina
logica chela pagina fisica
Pagina giàin memoria
si/no
4 bit
3 bit
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 31
memoria virtuale: come funziona
• se la pagina richiesta è in memoria: ok• altrimenti page fault.
– il SO interrompe l’esecuzione del programma– la pagina richiesta viene trasferita da disco a memoria centrale
(attesa) – una volta trasferita la pagina richiesta l’esecuzione del
programma può riprendere– a seguito di un page fault posso dover togliere una pagina dalla
memoria per fare spazio a quella nuova, questo implica che le pagine virtuali non hanno necessariamente lo stesso indirizzofisico
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 32
località dei programmi
• gli accessi in memoria rispettano un principio dilocalità– quando mi serve un dato che non è in
memoria trasferisco tutta la pagina checontiene quel dato
– quando devo togliere una pagina dallamemoria per fare spazio alla nuova paginatrasferisco pagine richieste indietro nel tempo (meno probabili che siano richieste nel futuro)
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 33
Gestione dei file: importanza I/O • Applicazioni hanno due componenti fondamentali:
– Elaborazione informazione– Input/Output (I/O) (esistono applicazioni senza I/O?)
• Dati sono nei dispositivi di memoria– diversi fra loro (velocità, modi di accesso, ...)
• Utente vede dati come una libreria standard– operazioni utente sono astratte: inserisci, cancella, duplica,...– non dipende dal tipo di dato o da dove è il dato
• Funzioni SO: fornire operazioni standard per accedere e modificare i dati– fornire protezioni ai dati (limitare le operazioni permesse)– semplificare accesso a utente– fornire interfaccia omogenea
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 34
Astrazione: File• Punto di vista utente
– Insieme di dati con un nome• tipo di dato (si usa spesso estenzione: txt - testo, exe - eseguibile,
gif - immagine, ....) • utilizzabile sempre in modo conveniente (utente non vuole sapere
dove si trova fisicamente il file)
• Punto di vista del sistema operativo– crea corrispondenza fra i byte che costituiscono il file su blocchi
di memoria non volatile • Dischi, nastri, CD, ....• Dati persistenti (assenza di corrente, riavvi del sistema,...)
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 35
Astrazione: Direttorio• Organizzare i file: una tabella contiene le informazioni su dove
ciascun file si trovi sul disco • Approccio semplice: ogni file ha un solo nome• In pratica:
– un direttorio per ogni utente, per specificare un file: • <nome utente, nome file>
– per ogni utente organizzazione ad albero del direttorio (es. cartelle diwindows)
Esempio: Mario/a/b.gifutentemario ha un direttorio a che contiene un file im magine b(Mario può averetantidirettori; a può conteneretantifile o direttori)
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 36
Meta-Dati di un file• Meta-dati: Informazioni addizionali associate ad ogni file
– Nome del file– Tipo del file– Puntatori (indirizzi) ai blocchi del disco che contengono i dati– Dimensione del file– Informazioni temporali: creazione, aggiornamento– Proprietario (utente, gruppo) – Bit di protezione (autorizzazione in lettura, scrittura)
• I Meta-dati sono memorizzati nel disco– parte del disco contiene le informazioni necessarie
• <nome file, indice sui metadati> (l’indice indica dove sono presenti i metadati nella memoria del disco)
12/11/2008 Fondamenti Informatica 2 - Prof. Gregorio Cosentino 37
Gestione del direttorio
• Direttorio contiene per ogni file una coppia<nome, indice>, (in cui il nome può essere un altro direttorio) – Direttorio è memorizzato e organizzato come un file – Indice indica dove sono le informazioni sui metadati associati al nome– Per indicare un file si specifica il nome del file indicando tutti i direttori a
partire dalla radice
Esempio: mkdir mario/a/b/ccrea direttorio c contenutoin b che a sua volta è contenutoin a
– Leggi i metadati associati a utente mario e cerchi “a”; ad esempio trovi <“a”, 5>– leggi le informazioni indicate da 5, e cerca “b”; ad esempio trovi <“b”, 9>– leggi le informazioni indicate da 9, verifichi che non esiste “c”; allochi c e aggiungi
“c” dove necessario