il sistema operativo vito perrone corso di informatica a per gestionali
TRANSCRIPT
Il sistema operativo
Vito Perrone
Corso di Informatica A per Gestionali
2Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Indice
• Architettura• Gestione dei processi• Gestione della memoria centrale• Driver• Gestione dei file
3Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Il sistema operativo
• E’ uno strato software cheopera direttamentesull’hardware
• Isola gli utenti dai dettaglidell’hardware
• Mono-utente o multi-utente• E’ organizzato a strati:
– Architettura a buccia di cipolla– Ogni strato costituisce
una macchina virtuale
Programmi utente
Interprete comandiattivazione programmi d’utente o di sistema
File systemcontrollo e gestione degli accessi a file
Gestione delle periferichegestione di ingresso/uscita da periferica
Gestione della memoriaallocazione e gestione della memoria
Gestione dei processi (nucleo)gestione dei processi e delle interruzioni
Macchina fisicaKernel
4Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Funzioni del sistema operativo
• Il gestore dei processi (o nucleo) è responsabile dell’esecuzione dei programmi da parte dell’unità di elaborazione
• Il gestore della memoria ha la funzione di allocare la memoria e partizionarla tra i vari programmi
• I driver sono responsabili delle operazioni di ingresso/uscita che coinvolgono le periferiche
• Il file system è responsabile della gestione dei file in memoria di massa
• L’interprete comandi consente all’utente di attivare i programmi
5Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Gestione dei processi
6Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Definizione di processo
• Il termine processo fa riferimento all’esecuzione di un programma
• Un processo P è una coppia di elementi (E, S), che comprende il codice eseguibile E del programma e lo stato S del processo
• Lo stesso programma può essere associato a più processi:– Un programma può essere scomposto in varie parti e
ognuna di esse può essere associata ad un diverso processo
– Lo stesso programma può essere associato a diversi processi quando diverse copie del medesimo processo sono mandate in esecuzione
7Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Stati di un processo (1)
• L’unità di elaborazione che esegue i processi prende nome di processore. In generale vi saranno n processori
• I processi possono essere classificati come:– In esecuzione– Pronti– In attesa
• Ipotesi semplificative:– Un programma sia associato a un solo processo– Il sistema sia dotato di un unico processore
• Uno solo dei processi può essere in esecuzione in un certo istante, gli altri processi saranno pronti oppure in attesa
8Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Stati di un processo (2)
• In esecuzione: assegnato al processore ed eseguito da esso
• Pronto: può andare in esecuzione, se il gestore dei processi lo decide
• In attesa: attende il verificarsi di un evento esterno per andare in stato di pronto
Processo in esecuzione
Processopronto
Processo in attesa
Inizio esecuzione
Primo processopronto
- Fine quanto di tempo- Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione- Abort per errore
9Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Stati di un processo (3)• I processi appena
creati sono messi in stato di pronto
Processo in esecuzione
Processopronto
Processo in attesa
Inizio esecuzione
Primo processopronto
- Fine quanto di tempo- Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione- Abort per errore
• Il nucleo decide quale processo pronto mettere in stato di esecuzione
P1 P2
• Il nucleo assegna il processore a un processo per un quanto di tempo– Coda dei processi pronti
– Round-robin
– Priorità dei processi
10Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Stati di un processo (4)
• Il processo in esecuzione passa in stato di attesa se richiede operazioni di I/O (interruzione interna)
• Corrisponde alla esecuzione dell’istruzione “chiamata a supervisore”(SuperVisor Call, SVC)
Processo in esecuzione
Processopronto
Processo in attesa
Inizio esecuzione
Primo processopronto
- Fine quanto di tempo- Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione- Abort per errore
P1
P2
11Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Stati di un processo (5)
Processo in esecuzione
Processopronto
Processo in attesa
Inizio esecuzione
Primo processopronto
- Fine quanto di tempo- Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione- Abort per errore
P1
P2
• Il processore è ora libero, un altro processo passerà in esecuzione
• Cambiamento di contesto:– Salvare il contesto di P1
nel suo descrittore di processo
12Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Stati di un processo (6)
Processo in esecuzione
Processopronto
Processo in attesa
Inizio esecuzione
Primo processopronto
- Fine quanto di tempo- Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione- Abort per errore
P1
P2
• Quando l’operazione di I/O è finita viene generata un’interruzione esterna
• Il processo in esecuzione viene interrotto
• Il nucleo esegue il gestore delle interruzioni che esegue le azioni opportune
• P1 può tornare pronto
• Il nucleo sceglie qualeprocesso mandare inesecuzione
13Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Stati di un processo (7)
Processo in esecuzione
Processopronto
Processo in attesa
Inizio esecuzione
Primo processopronto
- Fine quanto di tempo- Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione- Abort per errore
P1
P2• Pre-emption: quando il quanto di tempo è scaduto, il nucleo interrompe il processo in esecuzione
• Si cerca di garantire un uso equo della CPU a tutti i processi
14Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Sincronizzazione
• A volte, i processi devono sincronizzarsi, ovvero coordinare le loro attività
• Il coordinamento sequenziale: un processo termina invocando l’attivazione di un altro processo
• La competizione: due processi vogliono accedere simultaneamente a una medesima risorsa (risorsa critica)
15Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Gestione della memoria centrale
16Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Rilocazione e paginazione
• La gestione concorrente di molti processi, comporta la presenza di molti programmi in memoria centrale
• Per allocare i programmi in memoria è necessario rilocarli (trasformare gli indirizzi logici, presenti nei programmi, in indirizzi fisici)
• Paginazione: – La memoria centrale è considerata dal gestore della
memoria come partizionata in pagine– Ciascuna di queste è un’area di memoria contigua, di
dimensione fissata
– Dati e programmi vengono partizionati in pagine e allocati in un numero intero di pagine, non necessariamente contigue
17Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Segmentazione
• Segmentazione: – Durante la compilazione, il programma è frazionato in
parti che svolgono differenti funzioni• Per es. si possono separare i dati dalle istruzioni
– E’ una partizione logica del programma. – Consente al gestore della memoria di caricare i segmenti
che compongono il programma stesso in maniera indipendente
– Mentre le pagine hanno lunghezza fissa, i segmenti, hanno lunghezza variabile
• La segmentazione e la paginazione non sono tecniche alternative. Spesso sono applicate contemporaneamente
18Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
La memoria virtuale
• In entrambi i casi, il gestore della memoria offre al programma applicativo la visione di una memoria virtuale
• La memoria virtuale è maggiore di quella fisica:– E’ possibile allocare più pagine o segmenti di quelle che possono stare
nella memoria fisica allo stesso tempo– Le pagine o i segmenti che non sono al momento caricate nella
memoria fisica rimango disponibili nella memoria di massa
• La gestione della memoria è coordinata con la gestione dei processi:– Quando un processo è eseguito, le pagine o i segmenti che sono al
momento in esecuzione o che contengono i dati attualmente indirizzati devono essere caricati in memoria
– Se una pagina o un segmento necessario al programma non è presente, il processo deve essere sospeso per consentire il caricamento
19Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
La catena di programmazione (1)
• Il compilatore trasforma un modulo di programma sorgente in un modulo di programma oggetto– Un programma può essere suddiviso in parti (moduli)– I nomi delle variabili locali al modulo di programma vengono
tradotti in indirizzi rilocabili (espressi in forma logica)– I riferimenti alle variabili esterne al modulo, restano in formato
simbolico• Il linker trasforma diversi moduli oggetto in un unico
programma eseguibile– Il linker risolve i riferimenti a variabili definite esternamente a
ciascun modulo, trasformando i residui indirizzi simbolici in indirizzi rilocabili
20Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
La catena di programmazione (2)
• A volte (raramente) gli indirizzi sono espressi in formato assoluto (calcolati a partire da una specifica cella di memoria)
• Il loader carica il programma eseguibile in memoria– Indirizzi assoluti: il loader caricare il programma nella
specifica zona di memoria– Indirizzi rilocabili: il loader è responsabile della loro
rilocazione
21Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
La rilocazione• Rilocazione statica:
– All’atto del caricamento in memoria– Trasforma il codice:
indirizzi rilocabili indirizzi assoluti
Registro base
Indirizzo rilocabile
+Indirizzo calcolato
• Rilocazione dinamica:– Non comporta una conversione
del codice– Richiede l’utilizzo di due registri
speciali:• Il registro base contiene il valore
dell’indirizzo della prima cella di memoria a partire dalla quale il programma è stato caricato
• Il registro dimensione contenente la dimensione del programma; permette di verificare che l’indirizzo generato dal programma rientri nello spazio indirizzabile
22Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Modo S e modo U • La memoria è suddivisa in:
– Memoria di modo S (supervisore): contiene i programmi di sistema operativo e vengono create le strutture dati da esso utilizzate
– Memoria di modo U (utente): contiene i programmi utente
• Se il processore sta eseguendo un processo utente:
– Lo si dice attivo in modo utente (in modo U)– Può accedere soltanto alla memoria di modo U
• Se il processore sta eseguendo un processo di sistema:– E’ attivo il nucleo– Si dice attivo in modo supervisore (in modo S)– Può accedere alla memoria di modo S e di modo U– Può eseguire istruzioni “privilegiate”
23Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Driver
24Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
I driver
• Sono meccanismi software cui è affidato il compito di comunicare dati da e verso le periferiche
• Garantiscono ai programmi che li usano una visione di alto livello– E’ possibile leggere o scrivere tramite primitive
indipendenti dalla struttura hardware delle periferiche
• Si distingue fra:– Driver fisici (hardware). Vengono attivati direttamente dal
gestore delle interruzioni– Driver logici (software). Fanno parte del sistema
operativo e forniscono una gerarchia di operazioni, con un’organizzazione a strati
25Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Gestione dei file
26Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Il file system
• Consente di gestire i file sulla memoria di massa:– Creare un file– Dargli un nome– Collocarlo in un opportuno spazio nella memoria di
massa– Accedervi in lettura e scrittura
• Gestione dei file indipendente dalle caratteristiche fisiche della memoria di massa
• I file vengono inclusi all’interno di directory (o cataloghi):– Hanno una tipica organizzazione ad albero– Alcuni sistemi operativi permettono una struttura a grafo
27Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
La struttura ad albero
28Copyright © 2004 - The McGraw-Hill Companies, srl
Il Sistema OperativoInformatica A – V. Perrone
Organizzazione dei file
• A ciascun utente è normalmente associata una directory specifica, detta home directory
• Il livello di protezione di un file indica quali operazioni possono essere eseguite da ciascun utente
• Ciascun file ha un pathname (o nome completo) che include l’intero cammino dalla radice dell’albero
• Il contesto di un utente all’interno del file system è la directory in cui correntemente si trova