È dunque un componente essenziale del sistema di elaborazione che funge da "base" al quale si appoggiano gli altri software, che dunque dovranno essere progettati e realizzati in modo da essere riconosciuti e supportati da quel particolare sistema operativo. Assieme al processore, con cui è strettamente legato, costituisce la cosiddetta piattaforma del sistema di elaborazione.
Un generico sistema operativo moderno si compone di alcune parti standard, più o meno ben definite.
- Il kernel: è un gruppo di funzioni fondamentali, strettamente interconnesse fra loro e con l'hardware, che vengono eseguite con il privilegio massimo disponibile sulla macchina ossia in modalità kernel; il kernel fornisce le funzionalità di base per tutte le altre componenti del sistema operativo, che assolvono le loro funzioni servendosi dei servizi che esso offre. A seconda del tipo di sistema operativo il kernel può inglobare altre parti (kernel classico, monolitico o modulare) o fornire solo funzioni base delegando più funzioni possibile a oggetti/gestori esterni (microkernel).
- Un sistema di gestione di memoria : che alloca la memoria primaria richiesta dai programmi e dal sistema operativo stesso, salva sulla memoria di massa le zone di memoria temporaneamente non usate dai programmi (memoria virtuale) e garantisce che le pagine swappate vengano riportate in memoria se richieste.
- Uno scheduler: che scandisce il tempo di esecuzione dei vari processi e assicura che ciascuno di essi venga eseguito per il tempo richiesto. Normalmente lo scheduler gestisce anche lo statodei processi e può sospenderne l'esecuzione nel caso questi siano in attesa senza fare nulla (esempio classico è la richiesta di dati da disco). Nei sistemi operativi realtime lo scheduler si occupa anche di garantire una timeline, cioè un tempo massimo di completamento per ciascun task in esecuzione, ed è notevolmente più complesso.
- Il gestore di file system: si occupa di esaudire le richieste di accesso alle memorie di massa. Viene utilizzato ogni volta che si accede a un file sul disco, e oltre a fornire i dati richiesti tiene traccia dei file aperti, dei permessi di accesso ai file. Inoltre si occupa anche e soprattutto dell'astrazione logica dei dati memorizzati sul computer (directory, ecc).
- Uno spooler che riceve dai programmi i dati da stampare e li stampa in successione, permettendo ai programmi di proseguire senza dover attendere la fine del processo di stampa.
- Una interfaccia utente (Shell) :che permette agli utenti di interagire con la macchina.
A seconda dei casi, un particolare sistema operativo può avere tutti
questi componenti o solo alcuni. Una ulteriore differenza fra i
sistemi operativi è data dal tipo di comunicazione fra le varie
componenti: i sistemi operativi classici sono basati su chiamate
dirette di funzioni, mentre molti sistemi operativi moderni,
soprattutto quelli che adottano microkernel, si basano sul message
passing, sullo scambio di messaggi fra le loro varie parti e fra il
sistema operativo e i programmi che fa girare.
Nessun commento:
Posta un commento