Sistema operativo

Affinché un computer sia in grado di far funzionare un programma informatico (detto talvolta applicazione o software), il terminale deve essere capace di effettuare un certo numero di operazioni preparatorie per assicurare gli scambi tra il processore, la memoria, e le risorse hardware (periferiche).

Descrizione del sistema operativo

Il sistema operativo (sigla SO o OS, abbreviazione del temine inglese Operating System), è incaricato di assicurare il collegamento tra le risorse software, l'utente e le applicazioni (trattamento di testi, giochi video, ecc.). Così, quando un programma vuole accedere ad una risorsa hardware, non è necessario che invii delle informazioni specifiche alla periferica, ma gli basterà inviare le informazioni al sistema operativo, che si occuperà di trasmetterle alla periferica interessata attraverso il suo driver. In assenza dei driver, bisognerà la ogni programma riconosca e accetti la comunicazione con ogni tipo di periferica:

Système d\

Il sistema operativo permette quindi di "dissociare" i programmi e l'hardware, soprattutto per semplificare la gestione delle risorse e offrire all'utente un'interfaccia uomo-terminale semplificata per permettergli di liberarsi della complessità del terminale hardware.

Ruoli del sistema operativo

I ruoli del sistema operativo sono diversi:

Gestione del processore, il sistema operativo è incaricato di gestire la distribuzione del processore tra i diversi programmi mediante un algoritmo di comando. Il tipo di comando dipende totalmente dal sistema operativo, secondo l'obiettivo desiderato;

Gestione della memoria RAM, il sistema operativo è incaricato di gestire lo spazio di memoria distribuito ad ogni applicazione e, se necessario, ad ogni utente. In caso di memoria hardware insufficiente, il sistema operativo può creare una zona di memoria sul disco rigido, detta «memoria virtuale». La memoria virtuale permette di far funzionare delle applicazioni che necessitano di più memoria di quanta non sia disponibile nella memoria viva del sistema. Dall'altro lato, questa memoria è molto più lenta;

Gestione delle entrate/uscite, il sistema operativo permette di unificare e di controllare l'accesso dei programmi alle risorse hardware attraverso dei driver (detti anche gestionari di periferiche o gestionari di entrata/uscita);

Gestione degli eseguibili delle applicazioni, il sistema operativo è incaricato della corretta esecuzione delle applicazioni attribuendo loro le risorse necessarie al buon funzionamento. A questo titolo, esso permette di «eliminare» un'applicazione che non risponde più correttamente;

Gestione dei diritti, il sistema operativo è incaricato della sicurezza legata all'esecuzione dei programmi garantendo che le risorse sono utilizzate solo dai programmi e che utenti hanno i diritti appropriati;

Gestione dei file, il sistema operativo gestisce la lettura e la scrittura nel sistema dei file e i diritti di accesso ai file per gli utenti e le applicazioni;

Gestione delle informazioni,il sistema operativo fornisce un certo numero di indicatori che permettono di diagnosticare il corretto funzionamento del terminale.

Componenti del sistema operativo

Il sistema operativo è composto da un insieme di software che permettono di gestire le interazioni con l'hardware. In questo gruppo si distinguono generalmente i seguenti elementi:

Il nucleo (in inglese kernel) che rappresenta le funzioni fondamentali del sistema operativo come la gestione della memoria, dei processi, dei file, delle entrate/uscite principali e delle funzionalità di comunicazione;

L'interprete di comando (in inglese shell, tradotto «conchiglia» in opposizione a nucleo) che permette la comunicazione con il sistema operativo mediante un linguaggio di comandi, affinché l'utente possa pilotare le periferiche ignorando tutta una serie di caratteristiche hardware che utilizza, dalla gestione degli indirizzi hardware, ecc.

Il sistema di file (in inglese «file system», sigla FS), che permette di salvare i file in un'arborescenza.

Sistemi multitask

Un sistema operativo è detto «multitask» (in inglese multithreaded) quando più «operazioni» (detti anche processi) possono essere eseguiti simultaneamente.

Le applicazioni sono composte come una sequenza di istruzioni detta «processi leggeri» (in inglese «threads»). Questi threads saranno attivi a turno, in attesa, sospesi o distrutti, secondo la priorità che è loro associata oppure eseguiti progressivamente. Un sistema è detto preemptive quando ha un comandante (detto anche pianificatore) che ripartisce, seguendo dei criteri di priorità, il tempo terminale tra i diversi processi che lo richiedono.

Il sistema è detto a tempo condiviso quando una quota di tempo è destinata ad ogni processo dal comandante. È esattamente il caso dei sistemi multi-utenti che permettono a più utenti di usare simultaneamente su uno stesso terminale delle applicazioni differenti oppure simili: il sistema è allora detto «sistema transazionale». Il sistema quindi assegna ad ogni utente un intervallo di tempo.

Sistemi multiprocessore

Il multiprocessing è una tecnica che consiste nel far funzionare più processori in parallelo per ottenere una maggiore potenza di calcolo rispetto a quella ottenibile con un processore d'alta qualità oppure per aumentare la disponibilità del sistema (in caso di guasto di un processore). Viene detto SMP (Symmetric Multiprocessing o Symmetric Multiprocessor) un'architettura in cui tutti i processori accedono ad uno spazio memoria condiviso. Un sistema multiprocessore deve quindi essere capace di gestire la condivisione della memoria tra più processore ma anche distribuire il carico di lavoro.

Sistemi imbarcati

I Sistemi imbarcati sono dei sistemi operativi previsti per funzionare su terminali di piccole dimensioni, come i PDA (personal digital assistants e in francese assistants numériques personnels) o delle apparecchiature elettroniche autonome (sonde spaziali, robot, computer di bordo di veicoli, ecc.), con un autonomia ridotta. Caratteristica essenziale dei sistemi imbarcati è la loro gestione avanzata dell'energia e la loro capacità di funzionare con delle risorse limitate. I principali sistemi imbarcati «grande distribuzione» per PDA sono: PalmOS; Windows CE/Windows Mobile/Window smartphone.

Sistemi in tempo reale

I sistemi in tempo reale (real time systems), essenzialmente usati nell'industria, sono dei sistemi il cui obiettivo è di funzionare in un ambiente con limiti temporali. Un sistema in tempo reale deve quindi funzionare in modo affidabile secondo limiti temporali specifici, cioè deve essere in grado i consegnare un corretto trattamento delle informazioni ricevute ad intervalli di tempo definiti (regolari o meno). Ecco alcuni esempi di sistemi operativi in tempo reale:

OS-9;

RTLinux (RealTime Linux);

QNX;

VxWorks.

I tipi di sistemi operativi

Si distinguono molteplici tipi di sistemi operativi, secondo la loro capacità di gestire contemporaneamente delle informazioni di una lunghezza di 16 bit, 32 bit, 64 bit o più:

Sistema Codifica Monoutente Multiutente Monotask Multitask
DOS 16 bit X X
Windows3.1 16/32 bit X non preemptive
Windows95/98/Me 32 bit X cooperativo
WindowsNT/2000 32 bit X preemptive
WindowsXP 32/64 bit X preemptive
Unix / Linux 32/64 bit X preemptive
MAC/OS X 32 bit X preemptive
VMS 32 bit X preemptive

Foto: © Pixabay.

I nostri contenuti sono creati in collaborazione con esperti di high-tech, sotto la direzione di Jean-François Pillou, fondatore di CCM.net. CCM è un sito di high-tech leader a livello internazionale ed è disponibile in 11 lingue.
Il documento intitolato « Sistema operativo » dal sito CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.