Abbiamo visto, nelle scorse lezioni, come i progressi tecnologici
compiuti in pochi anni e lesperienza 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, lultima 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é laffidabilità
dellintero 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 dellutilizzo di più processori,
fornendo dei meccanismi interni per suddividere lesecuzione
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 uninterfaccia di rete e del relativo
software di gestione di basso livello, oltre a programmi per il
collegamento a sistemi remoti e laccesso a file su macchine
remote.
Un SO distribuito appare ai suoi utenti come un sistema uniprocessore
tradizionale, sebbene lesecuzione delle applicazioni e lelaborazione
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 allutente.
Lo scopo dei sistemi distribuiti è quello di permettere la condivisione
di risorse quali file, stampanti, CPU, etc. e di incrementare le
prestazioni.
Per raggiungere questultimo 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 lutilizzo 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