Gen SO
Gen SO
Esso realizza una duplice funzionalità: costituisce un'interfaccia tra la macchina e l'utente
(supporto per l'utente) e gestisce in modo ottimale le risorse del sistema (supporto per
l'efficienza dell'elaboratore).
Partendo da questa definizione, possiamo dire che un sistema operativo:
• gestisce le risorse, intendendo che pone in atto tecniche e politiche per utilizzare al
meglio le risorse software e hardware di un sistema di elaborazione. Ricordiamo che le
risorse software, sono i dati e i programmi, mentre le risorse hardware sono la memoria
centrale, le memorie di massa, il processore, le periferiche e i canali di comunicazione;
• gestisce la comunicazione, intendendo l'interazione tra l'utente e il sistema di elabora-
zione (oltre all'interazione di quest'ultimo con altri sistemi di elaborazione);
• gestisce le informazioni, intendendo che memorizza, trasmette, elabora nel modo più
efficiente possibile le informazioni presenti in un sistema di elaborazione.
Volendo fare una analogia con il mondo reale, possiamo dire che un sistema operativo gestisce
lo spazio, il tempo e la comunicazione, dove:
I sistemi Operativi 1
Lo spazio È strettamente legato alla Memoria di un computer
Il tempo È strettamente legato alla CPU di un computer
La comunicazione È strettamente legato alle Periferiche di un computer
Il diagramma a cipolla di figura 1 può essere ulteriormente dettagliato cosi come riportato
nella figura 3 dove possiamo notare che il livello 1 corrispondente al sistema operativo è stato
scomposto in ulteriori quattro livelli.
Figura 3
Ogni strato può essere visto come un modulo software, ossia un insieme di programmi che sono
eseguiti sfruttando quanto è messo a disposizione dallo strato sottostante.
I sistemi Operativi 2
In altri termini, uno strato mette a disposizione un insieme di funzionalità, dette primitive, che
possono essere invocate dai programmi dei livelli superiori.
Prendiamo, ad esempio, lo strato relativo alla gestione della memoria. I programmi presenti in
questo livello possono essere invocati da programmi presenti allo strato superiore, relativo alla
gestione dell'input/output, e a loro volta effettuano delle chiamate alle primitive messe a
disposizione dallo strato inferiore: il nucleo.
Si dice anche che ogni strato è una macchina virtuale per gli strati superiori, nel senso che, a
qualsiasi livello ci si collochi, gli strati sottostanti vengono visti come oggetto unico, come se
fosse una macchina fisica (in realtà è una macchina virtuale), che fornisce le primitive (ovvero
delle funzioni) attraverso le quali è possibile interagire con esso, che opera su particolari tipi di
oggetti e accetta specifici comandi.
Fig. 4
di una
Nel nostro esempio, lo strato della gestione della memoria interagisce con la macchina virtuale
formata dagli strati sottostanti, cioè con la macchina virtuale del nucleo.
“Una macchina virtuale è quindi un oggetto costituito da una macchina fisica, in grado di
eseguire operazioni fisiche vere e proprie, e da uno strato software che fornisce delle
primitive a chi vuole utilizzare tale oggetto.”
L’evoluzione dei sistemi operativi ha sempre proceduto di pari passo con l'evoluzione del-
l'hardware.
I sistemi Operativi 3
Per questa seconda fase possiamo utilizzare lo
slogan pochi controllano molti. Poche persone
autorizzate erano infatti in grado di controllare e
gestire tutte le informazioni da elaborare. Erano
anni in cui nascevano preoccupazioni di natura
sociologica e timori di perdita di democrazia.
Un terzo passo dell'evoluzione si ebbe a metà degli anni Cinquanta, con l'avvento dei primi
linguaggi di programmazione. Si cominciò a estendere l'utilizzo del computer anche ad altre
persone, quali i docenti e gli studenti universitari, che dovevano testare i programmi scritti
con nuovi linguaggi di programmazione come il FORTRAN (1957). Per ridurre i tempi di attesa
degli utenti e per evitare che qualcuno monopolizzasse la CPU, si procedette a una politica di
utilizzo del computer che viene definita organizzazione "a lotti" e si parlò di sistemi di tipo
batch.
3.2 I sistemi batch
Nell'organizzazione batch, l'utente non interagiva con il computer durante l'esecuzione del
programma. Il programma veniva scritto perforando un opportuno numero di schede di
cartoncino (tramite un apposito perforatore). Per ogni istruzione del programma veniva
perforata una scheda.
I sistemi Operativi 4
Nella figura 7 sono rappresentati due job eseguiti uno dopo l'altro con i rispettivi
temi per le operazioni di I/O. Fig. 7
di una
La risorsa CPU è però una risorsa privilegiata e un buon sistema operativo deve
gestirla al meglio.
Si pensò, dunque, di affiancare a essa processori specifici per la gestione
dell'input, detti appunto processori di I/O, ai quali la CPU avrebbe potuto
trasferire il controllo per potersi dedicare all'attività elaborativa vera e propria
del job successivo (Fig.8).
Questo voleva anche dire non elaborare più un solo job a I la volta;era finalmente
possibile avere più programmi contemporaneamente presenti in memoria. Si passò,
così, dai sistemi in monoprogrammazione ai sistemi in multiprogrammazione.
I sistemi Operativi 6
3.4 Dai sistemi operativi proprietari ai sistemi operativi portabiti
Agli inizi degli anni Ottanta, con l'avvento dei personal computer, i sistemi
operativi subirono un'altra decisa evoluzione. L'elaborazione venne infatti
spostata dai grossi centri di calcolo alle case di ogni utente.
Volendo utilizzare uno slogan per questa fase possiamo affermare che ognuno
controlla sé stesso.
Il sistema operativo doveva risolvere, a questo punto, problematiche del tipo
interazione semplice con l'utente.
A quest'epoca risale il famoso sistema operativo MS-DOS di Microsoft, con il
quale era possibile avere un'interazione semplice, anche se ancora in modalità
testuale. L'innovazione più eclatante di questo periodo fu la separazione tra
macchina hardware e sistema operativo. Si passò dai grossi sistemi operativi
detti proprietari (cioè dedicati solo a uno specifico hardware) a sistemi operativi
snelli e portabili o aperti (cioè eseguibili) su hardware diversi.
MS-DOS fu il primo sistema operativo a funzionare su macchine diverse; ciò era
reso possibile dal fatto che i produttori di computer si divisero tra produttori di
hardware (INTEL, IBM e allo sviluppo dei microprocessori) e produttori di
software (Microsoft). Si intuì che l'utente non doveva necessariamente essere un
tecnico. Apparvero, in questo periodo, i primi supporti removibili di memoria di
massa: i floppy disk.
Un'altra piccola rivoluzione avvenne con il sistema operativo di Apple, il primo
sistema operativo di successo per personal computer ad avere un'interfaccia
utente grafica. Fu questo un passo importante nell'evoluzione dei sistemi
operativi. L'interazione tramite interfaccia grafica, intuitiva e immediata,
contribuì in modo decisivo ad avvicinare al computer anche l'utente non esperto di
informatica.
I sistemi Operativi 7
Le reti di computer hanno dato il via a un'importante classe di sistemi operativi: i
sistemi operativi di rete (Networking Operating System o NOS ). Un NOS si
basa su una rete di computer che mette in collegamento più computer. Su tale rete, le
risorse delle singole macchine vengono condivise tra gli utenti. Quando la condivisione di
risorse hardware e software è resa trasparente all'utente, si parla di sistemi operativi
distribuiti. Più in particolare, nei sistemi operativi di rete ogni nodo dispone di un proprio
sistema operativo (spesso anche diversi fra loro) che è abilitato a cooperare con gli altri. Il
sistema operativo distribuito, invece, prevede che lo stesso sistema sia caricato su tutti i
nodi della rete e funzioni in modo che l'utente collegato a uno qualsiasi dei nodi abbia la
sensazione della presenza di un sistema unico nascondendo il fatto che, al contrario, il
sistema è distribuito. Riassumiamo l'evoluzione dei sistemi operativi nella seguente tabella.
Una particolare categoria di sistemi operativi è quella nota come sistemi in tempo reale o
in real time in cui rientrano i sistemi operativi destinati ad applicazioni "critiche" nel
senso che il tempo di risposta deve necessariamente avvenire in tempi prestabiliti pena il
verificarsi di catastrofi (ex: i SO per il controllo di centrali nucleari o per il controllo di
apparecchiature aeronautiche).
I sistemi Operativi 8