Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

28
Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali

Transcript of Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

Page 1: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

Il sistema operativo

Vito Perrone

Corso di Informatica A per Gestionali

Page 2: 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

Page 3: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 4: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 5: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

5Copyright © 2004 - The McGraw-Hill Companies, srl

Il Sistema OperativoInformatica A – V. Perrone

Gestione dei processi

Page 6: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 7: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 8: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 9: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 10: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 11: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 12: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 13: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 14: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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)

Page 15: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

15Copyright © 2004 - The McGraw-Hill Companies, srl

Il Sistema OperativoInformatica A – V. Perrone

Gestione della memoria centrale

Page 16: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 17: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 18: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 19: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 20: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 21: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 22: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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”

Page 23: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

23Copyright © 2004 - The McGraw-Hill Companies, srl

Il Sistema OperativoInformatica A – V. Perrone

Driver

Page 24: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 25: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

25Copyright © 2004 - The McGraw-Hill Companies, srl

Il Sistema OperativoInformatica A – V. Perrone

Gestione dei file

Page 26: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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

Page 27: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

27Copyright © 2004 - The McGraw-Hill Companies, srl

Il Sistema OperativoInformatica A – V. Perrone

La struttura ad albero

Page 28: Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali.

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