Sei sulla pagina 1di 2

Strati funzionali del sistema operativo

Per semplificare la progettazione e lo sviluppo di un sistema operativo si suole organizzarlo


internamente in moduli corrispondenti alle diverse risorse che esso deve gestire :
⁃ Il gestore dei processi in esecuzione e degli interrupt
⁃ Il gestore della memoria per il codice e per i dati dei programmi in esecuzione
⁃ Il gestore dei dispositivi di input e di output
⁃ Il gestore dei file memorizzati su disco o su altri supporti
⁃ Il gestore della comunicazione di rete

Si ha anche l’interprete dei comandi, che è un’interfaccia di interazione con l’utente; può essere a
linea di comando (CUI) o grafica (GUI).

PROGRAMMI UTENTE
strati INTERPRETE DEI COMANDI (attiva i programmi utente o di sistema)
funzionali FILE SYSTEM (controlla e gestisce l'accesso ai files)
del GESTORE DELLE PERIFERICHE (gestisce le operazioni di I/O delle periferiche)
sistema GESTORE DELLA MEMORIA (alloca e gestisce la RAM)

operativo GESTIONE DEI PROCESSI (KERNEL - gestisce i processi e gli interrupt)


MACCHINA FISICA

Ad esempio l’interprete dei comandi può richiedere l’esecuzione di tutte le funzioni di più basso
livello rispetto ad esso; quando l’utente avvia un programma, questo deve divenire un processo in
esecuzione e l’interprete, in modo trasparente all’utente, deve effettuare le seguenti operazioni :
accede al programma scritto sulla memoria di massa tramite il gestore del file system
Allocare la memoria RAM necessaria a caricare il programma tramite il gestore della memoria
Attivare il processo tramite il gestore dei processi

Interrupt
Gli interrupt possono essere di due tipi: sincroni e asincroni.
Quelli sincroni sono detti anche interni perché è il processo stesso che richiede un operazione di
I/O che coinvolge una periferica (fra le periferiche viene inserita anche la memoria di massa); il
processo utente si interrompe ed interviene il sistema operativo: questa chiamata al sistema viene
chiamata Super Visor Call che fa passare l’esecuzione da un processo utente ad uno del kernel del
sistema operativo.
La sospensione avviene in modo tale che il processo riprenda da dove è stato interrotto e con gli
stessi dati: si salva il contesto e si copiano i valori dei registri, tra cui PC (Program Counter) nella
zona di memoria detta descrittore del processo o PCB (process control block).
Quando bisogna rimandare il processo di nuovo in esecuzione si ripristina il contesto copiando i
valori dal descrittore del processo ai registri della CPU.
Il context switching è quell’operazione complessiva di sospensione di un processo, salvataggio dello
stato tramite il PCB e scelta di un altro processo dalla ready list, ripristinandone lo stato e
rendendolo attivo.

Interruzioni esterne o asincrone


Avvengono quando il sistema operativo deve indicare alla CPU il verificarsi di un evento esterno;
ciò avviene tramite il registro delle interruzioni, nel quale ad ogni posizione corrisponde una
specifica condizione di interruzione:
▪ 0 vuol dire evento assente
▪ 1 vuol dire evento presente
Tutti i bit di questo registro sono messi in OR logico e vengono analizzati durante il ciclo di fetch.
Quando si verifica un interrupt esterna il kernel:
- salva il contesto del processo attivo
- il processo viene messo nello stato di ready
- richiama il gestore delle interruzioni per rimettere nello stato di ready, dallo stato di waiting, il
processo che era in attesa dell'interrupt
- Scegli un processo dalla Ready Queue e lo mette in Running
Per evitare problemi le interruzioni possono essere disabilitate o avere diverse priorità.

Potrebbero piacerti anche