Struttura di un sistema operativo

Il nucleo, la gestione della memoria, la gestione delle periferiche, il file system e l'interprete dei comandi (4 pagine formato doc)

Appunto di aleino88
In generale, un sistema operativo è organizzato a diversi livelli, ognuno con compiti specifici.


Ogni livello vede quelli sotto stanti come una macchina che svolge determinate funzioni.

Il centro è rappresentato dall'hardware, su cui agisce solamente il nucleo. Tale modello prende il nome di struttura a buccia di cipolla, che indica chiaramente che ogni livello sfrutta solo le funzioni di quello immediatamente sottostante; se un livello richiama funzioni di livelli più bassi di quello sottostante, si hanno complicazioni progettuali nel momento in cui si devono rivedere alcuni moduli.


Il nucleo, chiamato anche kernel (nocciolo), è la parte del sistema operativo più vicina alla macchina, ed è strettamente dipendente dall'hardware. I microprogrammi che lo compongono sono chiamati primitive del nucleo, e sono scritte in linguaggio macchina, specifico di un determinato microprocessore.

Le funzioni del nucleo sono:

  • creazione e terminazione dei processi,
  • assegnazione della CPU ai diversi processi,
  • sincronizzazione tra i processi,
  • sincronizzazione dei processi con l'ambiente esterno.

Quando si richiede l'esecuzione di un programma al calcolatore, è necessario che questo provveda a mettere a disposizione del programma le risorse di cui ha bisogno.

Le risorse principali delle quali il programma necessita sono:

  • il tempo di utilizzo del processore,
  • la memoria.

Per quanto riguarda il primo, occorre dire che il computer deve essere in grado di garan­tire che ogni programma del quale si chiede l'esecuzione possa terminare, e quindi deve dedicare del tempo alla sua esecuzione, eventualmente dividendo il tempo complessiva­mente disponibile tra più programmi in esecuzione.
Questo obiettivo può essere ottenuto in modi diversi, in particolare:

  • assegnando tutto il tempo macchina disponibile ad un singolo programma finché que­sto termina e passando poi al successivo;
  • assegnando un quanto di tempo a tutti i programmi in successione, durante la loro esecuzione.
Il primo criterio di assegnazione è tipico dei sistemi detti uniprogrammati, mentre il secondo caratterizza il funzionamento dei sistemi multiprogrammati.