12. Il Sistema Operativo
Ing. Simona Colucci
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
Il sistema operativo(SO)
DEE - Politecnico di Bari
•
•
•
E’ uno strato software che opera direttamente sull’hardware
Isola gli utenti dai dettagli dell’hardware fornendo funzionalità di alto
livello
Mono-utente o multi-utente:
– Il SO deve garantire che ogni utente avverta la macchina come dedicata
•
E’ organizzato a strati:
– Architettura a buccia di cipolla
– Ogni strato costituisce una macchina virtuale:
• Una macchina che maschera le caratteristiche di una macchina hardware ed offre
ai suoi utenti delle funzionalità
• Una macchina che esporta funzionalità all’esterno senza mostrare i propri
meccanismi implementativi: struttura modulare del SO
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
Architettura del sistema operativo
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
Macchina fisica
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
•
Il gestore dei processi (o nucleo)
–
–
–
–
•
Funzioni del sistema operativo
è responsabile dell’esecuzione dei programmi da parte dell’unità di elaborazione
gestisce l’esecuzione contemporanea di molti processi
reagisce agli eventi esterni
offre la visione di un’unità di elaborazione dedicata a ciascun utente
Il gestore della memoria
– ha la funzione di allocare la memoria e partizionarla tra i vari programmi
– offre la visione di una memoria dedicata a ciascun utente
•
•
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
– fornisce all’utente funzioni di alto livello per operare sui file
•
L’ interprete comandi usa gli strati sottostanti per:
– accedere al programma in memoria di massa tramite file system
– allocare la memoria e caricarvi il programma tramite gestore della memoria
– attivare un processo, tramite il nucleo
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
Obiettivo del SO
Ottimizzare le prestazioni del sistema informatico
determinando le politiche migliori di gestione delle
risorse sotto il suo controllo
Attività necessarie:
– gestire l’eventuale sovraccarico di richieste
– ridurre il tempo di attesa dell’utente in condizioni di carico complessivo
elevato
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
•
•
Gestione dei processi
Processo: esecuzione(oggetto dinamico) di un programma(oggetto
statico)
Un processo P è una coppia di elementi (E, S)
– E: codice eseguibile del programma
– S: stato del processo(insieme di tutti i valori contenuti nella memoria centrale
e nei registri della CPU, in particolare il PC)
•
Lo stesso programma può essere associato a più processi(assenza di
corrispondenza biunivoca):
– 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
– Alcuni linguaggi di programmazione (concorrenti) prevedono l’esecuzione di un
programma in più processi
•
L’unità di elaborazione che esegue i processi prende nome di processore
nel contesto dei SO(in generale vi possono essere n processori, ma ne
supporremo uno solo)
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
Classificazione dei processi
• in esecuzione:
eseguiti istante per istante dal processore(uno solo nelle
nostre ipotesi)
• pronti:
possono andare immediatamente in esecuzione se il
gestore dei processi lo decide
• in attesa:
attendono il verificarsi di un evento esterno per passare
in stato di pronto
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
Interruzioni interne
• Il processo di esecuzione richiede un’operazione di I/O:
– l’esecuzione del processo si sospende
– il processo passa dallo stato in esecuzione allo stato in attesa
– il nucleo diviene attivo
• Sono eventi sincroni rispetto alle attività del processore
• Corrispondono all’esecuzione di una istruzione detta
chiamata a supervisore(SVC, supervisor call) che fa
passare il processore dall’esecuzione di un processo
utente all’esecuzione di un processo di sistema operativo
• Bloccano il processo in esecuzione per evitare l’attesa di
un’operazione di I/O prima della prosecuzione
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
Interruzioni interne:
context switching
• Sospensione: il processo sospeso deve poter riprendere
esattamente nello stato al momento dell’interruzione interna, per cui
c’è necessità di:
– salvataggio del contesto al momento dell’interruzione: copia del
contenuto dei registri del processore nell’area di memoria chiamata
descrittore del processo
– ripristino del contesto prima di rimandare in esecuzione il processo:
copia del descrittore di processo nei registri del processore
• Scelta del processo pronto da avviare al posto di quello sospeso
• Esecuzione del nuovo processo pronto: ripristino del suo
contesto ed esecuzione dell’istruzione contenuta nel registro
Program Counter
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
Interruzioni esterne
• Causano il passaggio di un processo da stato di attesa(dovuto a
sospensione per interruzione interna) a stato di pronto
• Si verificano quando la periferica ha terminato di eseguire
l’operazione e chiede la sospensione del processo in esecuzione per
il completamento dell’operazione di I/O al fine di trasformare in
pronto il processo in attesa
• Sono eventi asincroni rispetto alle attività del processore
• Vengono segnalate al processore tramite il registro delle
interruzioni(INTR):
– ha varie posizioni corrispondenti alle possibili interruzioni, segnalate da
un bit posto ad 1(se l’evento non è presente il bit rimane a 0 per
convenzione)
– la CPU verifica la presenza di un’interruzione calcolando l’OR dei bit di
registro INTR tramite circuiti elettronici
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
Interruzioni esterne: gestione
Il nucleo:
– salva il contesto del programma attivo che passa da stato in
esecuzione a stato di pronto
– richiama il sottoprogramma gestore delle interruzioni che esegue
le operazioni necessarie a far fronte alla particolare interruzione
– dopo la gestione dell’interruzione sceglie uno dei programmi in
stato di pronto e lo manda in esecuzione
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
Processi: passaggi di stato
• Interruzioni interne(passaggio da esecuzione a in attesa)
• Interruzioni esterne(passaggio da in esecuzione a
pronto)
• Evento esterno atteso(passaggio da in attesa a pronto)
• Processo pre-empted: sospeso dal nucleo dopo un
certo intervallo temporale per garantire un uso paritario
della CPU(passaggio da in esecuzione a pronto)
• Processo aborted: interrotto e terminato forzatamente
dal nucleo a seguito di un errore(da in esecuzione a
terminato)
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
Passaggi di stato:
diagramma stato/trasizioni
Interruzione esterna, fine
quanto di tempo
Processo
in esecuzione
Primo
processo
pronto
Inizio
esecuzione
Processo
pronto
Interruzione
interna
Processo
in attesa
Fine
esecuzione
Abort per
errore
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Evento
esterno
atteso
Sistemi Informativi
DEE - Politecnico di Bari
Gestione dei processi della CPU
• Obiettivo: ogni programma utente deve essere eseguito entro un
tempo approssimativamente proporzionale alla sua
complessità(necessità di processi pre-empted)
• Politica più semplice: rotazione dei processi(round robin):
– si assegna il processore ad un processo per un quanto di tempo
(sufficientemente maggiore del tempo di context switching e
sufficientemente minore del tempo di esecuzione del programma)
– dopo il quanto di tempo il processo viene interrotto di autorità e
passato nei processi pronti
– si gestisce una coda di processi pronti con strategia FIFO(First In First
Out)
• Risultato:
– attesa proporzionale alla lunghezza del programma e al numero di
operazioni I/O richieste
– programmi brevi favoriti nel completamento
– massimizzazione del throughput di sistema: programmi completati
nell’unità di tempo
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
Gestione dei processi della CPU:
politiche alternative
• Gestione delle priorità:
– si crea una coda dei processi pronti per ogni livello di priorità
– si preleva sempre il primo processo della coda a priorità più alta
• Scenario applicativo: sistemi di sicurezza
• Problema: attesa troppo lunga per priorità basse
• Soluzione: cambio dinamico della priorità in base allo
stato
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
Sincronizzazione
• Coordinamento delle attività di diversi processi:
– coordinamento sequenziale: un processo termina invocando
l’attivazione di un altro processo(coordinamento semplice)
– coordinamenti complessi:
•competizione: due processi vogliono accedere simultaneamente a una
medesima risorsa (risorsa critica)
•cooperazione: un processo ha bisogno dell’altro per evolvere
Fanno uso di variabili condivise(semafori) per l’accesso a parti critiche dei
programmi e della comunicazione esplicita tra processi tramite scambio di
messaggi.
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
Gestione della memoria centrale
• La gestione concorrente di molti processi comporta la
presenza di molti programmi in memoria centrale: la MM
diventa una risorsa unica, in generale scarsa, da suddividere
tra i vari programmi
• Problemi connessi con la gestione della memoria:
– Per allocare i programmi in memoria è necessario rilocarli :
trasformare gli indirizzi logici, presenti nei programmi, in indirizzi
fisici(l’uso degli indirizzi simbolici consente il caricamento del
programma in porzioni di memoria differente.
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
Meccanismi di gestione
DEE - Politecnico di Bari
• Paginazione:
– il gestore della memoria la considera partizionata in pagine, che
occupano aree contigue di dimensione fissata
– i programmi vengono partizionati in pagine
• Segmentazione:
– durante la compilazione un programma viene frazionato in parti che
svolgono differenti funzioni
– la dimensione dei segmenti è variabile perché essi sono
semanticamente significativi
– il gestore della memoria può caricare in maniera indipendente i
segmenti
• NON sono tecniche alternative. Spesso sono applicate
contemporaneamente
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
La memoria virtuale
• Sia nel caso della paginazione, sia in quello della segmentazione,
il gestore della memoria offre al programma applicativo la visione
di una memoria virtuale
• La memoria virtuale v può essere maggiore di quella fisica p: è
sufficiente allocare più pagine o segmenti di quelli che possono
stare contemporaneamente in p(quelli non caricati in MM
rimangono disponibili in memoria di massa dove i programmi con
i relativi dati sono organizzati in file):
– i programmi con dimensione s>p possono essere eseguiti se s>v; in
questo caso gli indirizzi di s sono riferiti a v quindi:
• i registri devono potere indirizzare tutta v;
• il gestore della memoria converte gli indirizzi virtuali in fisici
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
Gestione dei processi e della memoria
• La gestione della memoria è coordinata con la gestione
dei processi:
– le pagine e i segmenti di programma che sono attualmente in
esecuzione o che contengono dati attualmente indirizzati devono
risiedere in MM
– se una pagina o un segmento necessari ad un processo in esecuzione
non si trovano in MM, il processo viene sospeso e passa in stato di
attesa
– dopo l’operazione di input da memoria di massa della pagina o
segmento il processo torna ad essere pronto
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
1.
•
•
2.
•
•
•
3.
•
•
Rilocazione:
La catena di programmazione
Il compilatore
trasforma un modulo di programma sorgente in un modulo di
programma oggetto;
trasforma le variabili locali ai moduli in indirizzi rilocabili
Il linker
trasforma diversi moduli oggetto in un unico programma
eseguibile
collega il programma utente a librerie di programmi di utilità
trasforma le variabili esterne a tutti i moduli in indirizzi rilocabili
Il loader carica il programma eseguibile in memoria
se il programma ha indirizzi assoluti il loader non ha margini di
intervento
se il programma ha indirizzi rilocabili il loader si occupa della
rilocazione
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
•
•
La rilocazione
Rilocazione statica:
– All’atto del caricamento in memoria
– Trasforma il codice:
indirizzi rilocabili  indirizzi assoluti
Registro base
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
+
Indirizzo
rilocabile
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Indirizzo
calcolato
Sistemi Informativi
DEE - Politecnico di Bari
•
Modo S e modo U
La memoria è suddivisa in:
– Memoria di modo S (supervisore): contiene i programmi di sistema operativo
(possono usare tutte le istruzioni del calcolatore, possono essere allocati in
memoria in maniera ottimale,devono essere protetti da errori procurati da altri
programmi) e 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”
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
•
•
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
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
•
Consente di gestire i file sulla memoria di massa:
–
–
–
–
•
•
Il file system
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(un file può
appartenere a più directory)
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
La struttura ad albero
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
•
•
•
•
Organizzazione dei file
A ciascun utente è normalmente associata una directory specifica,
detta home directory, che ha lo stesso nome dell’utente
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: nome unico
Il contesto di un utente all’interno del file system è la directory in
cui correntemente si trova
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Sistemi Informativi
DEE - Politecnico di Bari
•
•
•
•
•
•
•
•
File System:
funzioni disponibili agli utenti
creazione di file
creazione di directory
elencazione dei file
cambiamento del contesto
copia di un file
visualizzazione di un file
rinomina di un file
cancellazione di file o directory
Fondamenti di Informatica I
CDL in Ingegneria Elettronica - A.A. 2006-2007
Scarica

Sistemi Informativi - SisInf Lab