Il sistema operativo
Vito Perrone
Corso di Informatica A per Gestionali
Indice
•
•
•
•
•
Architettura
Gestione dei processi
Gestione della memoria centrale
Driver
Gestione dei file
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
2
Il sistema operativo
• E’ uno strato software che
opera direttamente
sull’hardware
• Isola gli utenti dai dettagli
dell’hardware
• Mono-utente o multi-utente
• E’ organizzato a strati:
– Architettura a buccia di cipolla
– Ogni strato costituisce
una macchina virtuale
Programmi utente
Interprete comandi
attivazione programmi d’utente o di sistema
File system
controllo e gestione degli accessi a file
Gestione delle periferiche
gestione di ingresso/uscita da periferica
Gestione della memoria
allocazione e gestione della memoria
Gestione dei processi (nucleo)
gestione dei processi e delle interruzioni
Kernel
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
Macchina fisica
3
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
4
Gestione dei processi
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
5
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
6
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
Il Sistema Operativo
Copyright © 2004 - The McGraw-Hill
Companies, srl
Informatica A – V. Perrone
7
Stati di un processo (2)
Inizio esecuzione
- Fine quanto di tempo
Processo
• In esecuzione:
- Interruzione esterna
pronto
assegnato al
processore ed
Primo processo
eseguito da esso
pronto
• Pronto: può andare in
Processo in
Evento esterno
esecuzione, se il
esecuzione
atteso
gestore dei processi lo
decide
Interruzione interna
• In attesa: attende il
Processo in
verificarsi di un evento
attesa
- Fine esecuzione
esterno per andare in- Abort per errore
stato di pronto
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
8
Stati di un processo (3)
• I processi appena
creati sono messi in
stato di pronto
• Il nucleo decide quale
processo pronto
mettere in stato di
esecuzione
• Il nucleo assegna il
processore a un
processo per un
quanto di tempo
– Coda dei processi
pronti
– Round-robin
– Priorità dei processi
Copyright © 2004 - The McGraw-Hill
Companies, srl
Inizio esecuzione
P1 P2
Processo
pronto
- Fine quanto di tempo
- Interruzione esterna
Primo processo
pronto
Processo in
esecuzione
Evento esterno
atteso
Interruzione interna
- Fine esecuzione
- Abort per errore
Il Sistema Operativo
Informatica A – V. Perrone
Processo in
attesa
9
Stati di un processo (4)
Inizio esecuzione
• 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)
- Fine quanto di tempo
- Interruzione esterna
P1
Processo in
esecuzione
Primo processo
pronto
Evento esterno
atteso
Interruzione interna
- Fine esecuzione
- Abort per errore
Copyright © 2004 - The McGraw-Hill
Companies, srl
P2
Processo
pronto
Il Sistema Operativo
Informatica A – V. Perrone
Processo in
attesa
10
Stati di un processo (5)
Inizio esecuzione
• Cambiamento di
contesto:
– Salvare il contesto di P1
nel suo descrittore di
processo
• Il processore è ora
libero, un altro processo
passerà in esecuzione
- Fine quanto di tempo
- Interruzione esterna
Primo processo
pronto
Processo in
esecuzione
Interruzione interna
- Fine esecuzione
- Abort per errore
Copyright © 2004 - The McGraw-Hill
Companies, srl
P2
Processo
pronto
Il Sistema Operativo
Informatica A – V. Perrone
Evento esterno
atteso
P1
Processo in
attesa
11
Stati di un processo (6)
• Quando l’operazione di
Inizio esecuzione
I/O è finita viene
generata
- Fine quanto di tempo
Processo
un’interruzione esterna
- Interruzione esterna
pronto
• Il processo in
esecuzione viene
Primo processo
interrotto
pronto
P2
• Il nucleo esegue il
Processo in
Evento esterno
gestore delle
esecuzione
atteso
interruzioni che esegue
le azioni opportune
Interruzione interna
P1
• P1 può tornare pronto
Processo in
• Il nucleo sceglie quale
attesa
Fine
esecuzione
processo mandare in
- Abort per errore
esecuzione
12
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
Stati di un processo (7)
Inizio esecuzione
• Pre-emption: quando il
quanto di tempo è
scaduto, il nucleo
interrompe il processo
in esecuzione
P2
Processo
pronto
- Fine quanto di tempo
- Interruzione esterna
• Si cerca di garantire un
uso equo della CPU a
tutti i processi
Primo processo
pronto
P1
Processo in
esecuzione
Evento esterno
atteso
Interruzione interna
- Fine esecuzione
- Abort per errore
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
Processo in
attesa
13
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)
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
14
Gestione della memoria centrale
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
15
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
16
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
17
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
18
Il Sistema Operativo
Copyright © 2004 - The McGraw-Hill
Companies, srl
Informatica 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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
19
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
20
La rilocazione
• Rilocazione statica:
– All’atto del caricamento in
memoria
– Trasforma il codice:
indirizzi rilocabili  indirizzi
assoluti
• Rilocazione dinamica:
Registro base
– 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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
+
Indirizzo
calcolato
Indirizzo
rilocabile
21
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”
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
22
Driver
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
23
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
24
Gestione dei file
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
25
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
26
La struttura ad albero
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
27
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
Copyright © 2004 - The McGraw-Hill
Companies, srl
Il Sistema Operativo
Informatica A – V. Perrone
28