IL SISTEMA OPERATIVO

Il sistema operativo è la componente software fondamentale di un sistema di elaborazione. Esso è formato da un insieme di programmi che interagiscono e cooperano per realizzare due obiettivi fondamentali:

  • gestire efficientemente l'elaboratore e le sue periferiche;

  • creare un ambiente virtuale che rende la macchina più facilmente utilizzabile all'utente.

Dal punto di vista strutturale il sistema operativo è formato da un insieme di livello (struttura a cipolla); ogni livello fornisce un insieme di funzioni e servizi a partire da funzioni e servizi forniti dai livelli sottostanti (si veda la figura 1). I livelli più bassi (in particolare, il più basso, detto "kernel") sono quelli più vicini all'hardware e quindi dipendono dalla specifica macchina (tali livelli sono spesso sviluppati in linguaggio macchina); i livelli più alti, che sono quelli più vicini agli utenti e ai programmi applicativi, sono spesso sviluppati in linguaggi ad alto livello (ad esempio in linguaggio "C") e sono abbastanza indipendenti dalle caratteristiche hardware della macchina.

Ad esempio, è oggi molto comune, su elaboratori anche di tipo differente (personal, workstation, mini, ...), il sistema operativo Linux. Per ogni macchina vi è un diverso kernel Linux mentre i livelli alti sono uguali (o molto simili) per cui gli utenti interagiscono uniformemente con le varie macchine.

Figura 1 - Struttura di un sistema operativo

La descrizione delle caratteristiche dei sistemi operativi nel seguito sarà fatta secondo uno schema funzionale: in altri termini. verranno analizzate le più importanti funzioni di tali sistemi, discutendo come esse possano essere realizzate ed analizzandone le interazioni. Le funzioni fondamentali su cui concentreremo l'attenzione sono:

  • avviamento dell'elaboratore e creazione dell'ambiente virtuale;

  • gestione del processore e dei processi;

  • gestione della memoria principale;

  • gestione della memoria virtuale;

  • gestione della memoria secondaria: il file system;

  • linguaggio di comandi per l'interazione con l'utente;

  • gestione delle risorse e periferiche; in particolare, gestione dell'Input/Output.

L'obiettivo è quello di dare una descrizione astratta e intuitiva della struttura e funzione del sistema, evitando i dettagli.

AVVIAMENTO DELL'ELABORATORE

Nei computer moderni il sistema operativo viene mandato in esecuzione al momento dell'accensione della macchina (tale fase prende il nome di "bootstrap") e prende quindi immediatamente il controllo dell'elaboratore. Vi è, quindi, una parte del sistema (un insieme di programmi e un insieme di dati) che viene caricato immediatamente in memoria principale. Quale sia più precisamente tale insieme di programmi e dati dipende dalle caratteristiche del sistema operativo; in prima approssimazione si può pensare che vengano caricati i seguenti programmi:

  • programmi per la gestione dei processi e del processore;

  • programmi per la gestione della memoria;

  • programmi per la gestione delle periferiche e dell'Input/Output;

  • programmi per la gestione del file system;

  • un programma che crea l'interfaccia verso l'utente ossia che fornisce all'utente un linguaggio di comandi per l'interazione con il sistema . In particolare viene di solito caricato in memoria un programma in grado di riconoscere i comandi dell'utente e di fare intraprendere al sistema le azioni opportune in corrispondenza di ogni comando.

Ciò comporta che una parte del sistema operativo sia sempre mantenuta in memoria principale e sia potenzialmente sempre pronta ad eseguire. Questo significa che parte della memoria principale dovrà essere dedicata a mantenere programmi e dati riguardanti il sistema operativo. Risulterà chiaro più avanti come ciò sia effettivamente possibile.

Last updated

Was this helpful?