Corso di Sistemi Operativi

Tipologie di sistemi operativi.

 

Abbiamo visto, nelle scorse lezioni, come i progressi tecnologici compiuti in pochi anni e l’esperienza maturata nel campo della progettazione e realizzazione di sistemi operativi, abbiano alimentato le speranze degli utenti di poter usufruire dei calcolatori nei campi più disparati, dalle prime applicazioni scientifiche fino ai più banali usi domestici dei nostri giorni.

Parallelamente a tale evoluzione, l’ultima metà del XX secolo ha visto nascere, crescere e diffondersi il concetto di rete di calcolatori, ossia un insieme più o meno popolato di calcolatori digitali connessi tra loro in modo da poter comunicare e scambiarsi informazioni.
Nel corso di qualche decennio, quindi, i sistemi informatici sono stati utilizzati prima per calcolare, poi per memorizzare e ordinare grandi quantità di informazioni, infine per comunicare: in uno scenario di questo tipo, non può mancare un naturale polimorfismo dei sistemi operativi, dei quali è possibile fare una classificazione in relazione alle caratteristiche di base che li contraddistinguono per funzionalità ed uso.
Possiamo parlare di:

 - sistemi centralizzati;
 - sistemi paralleli;
 - sistemi di rete;
 - sistemi distribuiti;
 - sistemi real-time.

Un sistema operativo centralizzato è una delle forme più comuni e tradizionali dei sistemi di gestione di un personal computer; i più diffusi sistemi centralizzati lavorano su macchine con un solo processore, una sola memoria, uno o più hard disk e svariati dispositivi di I/O (monitor video, stampante, etc.).

I sistemi operativi paralleli sono utilizzati per incrementare la capacità e la velocità di elaborazione, nonché l’affidabilità dell’intero sistema, grazie al supporto per un maggior numero di CPU (per questo motivo tali sistemi sono detti anche multiprocessori).
La caratteristica che li differenzia dai sistemi tradizionali (centralizzati e non) è quella di avvantaggiarsi dell’utilizzo di più processori, fornendo dei meccanismi interni per suddividere l’esecuzione dei programmi in porzioni che gireranno in parallelo, consentendo loro di essere completati in un tempo minore.



Sia i sistemi operativi di rete (network operating systems) che i sistemi operativi distribuiti (distributed operating systems) girano su personal computer connessi in rete; esiste, tuttavia, una differenza sostanziale tra queste due tipologie.
In un SO di rete ogni macchina ha il proprio SO locale e gli utenti sono a conoscenza del fatto che esistono diversi calcolatori e che possono accedere a macchine remote, ad es. per prelevarne dei file.
Un sistema di rete non è radicalmente diverso da un sistema a singolo processore, ma necessita di un’interfaccia di rete e del relativo software di gestione di basso livello, oltre a programmi per il collegamento a sistemi remoti e l’accesso a file su macchine remote.
Un SO distribuito appare ai suoi utenti come un sistema uniprocessore tradizionale, sebbene l’esecuzione delle applicazioni e l’elaborazione dei dati sia affidata a più processori dislocati su più macchine.
In un vero sistema distribuito, gli utenti non devono sapere dove stanno girando i loro programmi, né dove sono collocati i loro file; deve essere il sistema operativo a gestire automaticamente ed efficientemente tutte queste operazioni, in maniera del tutto invisibile all’utente.
Lo scopo dei sistemi distribuiti è quello di permettere la condivisione di risorse quali file, stampanti, CPU, etc. e di incrementare le prestazioni.
Per raggiungere quest’ultimo obiettivo è fondamentale che il SO implementi efficienti politiche di distribuzione e di bilanciamento del carico di lavoro, mediante più complessi algoritmi di schedulazione che ottimizzino la quantità di parallelismo raggiunto.
Inoltre i SO distribuiti devono semplificare l’utilizzo delle risorse remote (ad es. assimilando tali risorse a risorse locali quali directory del file system) e realizzare forme efficienti e sicure di comunicazione.

Un sistema operativo real time è caratterizzato dal fatto che è necessario che le funzioni di sistema siano completate entro limiti di tempo predeterminati.
Questa tipologia di sistemi operativi è molto particolare, in quanto pensata per la gestione e il controllo di sistemi “tempo-critici”, ovvero per tutte quelle applicazioni “critiche” in cui è necessario adottare delle misure di recupero degli errori e dei guasti in tempo utile per evitare che si verifichino danni di grossa entità.
Tali sistemi vengono adottati per i processi di controllo industriale, di monitoraggio di esperimenti, per i sistemi di sicurezza, etc.
A seconda di quanto stretti siano i vincoli temporali imposti dal sistema, si distinguono due tipi di sistemi: hard real time (che utilizzano dispositivi dedicati con memorie ROM e sono gli unici veramente utilizzabili in compiti critici) e soft real time (che schedulano i task privilegiando quelli segnati come real time, ma non offrono garanzie sui tempi di completamento).
Nelle lezioni successive conosceremo e confronteremo diversi modelli implementativi dei sistemi operativi.

 

Torna all'indice Generale del corso di Corso di Sistemi Operativi di Software Planet