Corso di Sistemi Operativi

Evoluzione dei sistemi operativi (II)

 

Proseguendo il nostro viaggio nel passato ci troviamo all’inizio degli anni 60, quando la maggior parte dei produttori di calcolatori avevano due linee distinte di prodotti: da un lato i grossi calcolatori scientifici come l’IBM 7094, dall’altro i calcolatori commericali di più limitata capacità elaborativa, come l’IBM 1041.
Per risolvere tutti i problemi correlati ad una tale situazione, l’IBM (allora in una situazione pressoché monopolistica) introdusse il System/360, una serie di macchine compatibili a livello software, che differivano solo per prezzo e prestazioni (si andava dal 1041 a macchine più potenti del 7094).
Il sistema 360 fu la prima linea di calcolatori ad usare la tecnologia dei circuiti integrati (IC), allora a bassa scala di integrazione, che portò innumerevoli vantaggi in termini di prezzo e prestazioni.

Inutile dire che il successo dei calcolatori compatibili convinse gli altri costruttori a fare altrettanto.
La compatibilità software fra i diversi computer fu un fattore di grande forza, ma anche un punto debole.
Principalmente ciò è dovuto al fatto che l’intenzione era di avere lo stesso software, SO compreso, su tutti i modelli, ma le grandi differenze nelle caratteristiche hardware e nell’uso in ambito scientifico e commerciale avevano requisiti spesso in conflitto fra loro.
Il voluminoso sistema operativo che venne adottato, l’OS/360, era costituito da milioni di righe di codice assembler scritto da migliaia di programmatori e conteneva centinaia di errori, che rendevano necessarie versioni sempre nuove, con le quali si correggevano i vecchi e se ne introducevano di nuovi…

Nonostante le enormi dimensioni e gli errori, i sistemi operativi della terza generazione seppero soddisfare gli utenti, anche grazie all’introduzione di una nuova tecnica, la multiprogrammazione.
A causa dei costi elevatissimi dei calcolatori, si impose la necessità di ridurre la quantità di tempo in cui la CPU rimaneva inattiva, permettendo ad un job di occupare il processore mentre un altro job era in attesa del completamento di un’operazione di I/O.
Per fare ciò la memoria principale venne divisa in partizioni, una dedicata al SO e le rimanenti assegnate a vari job.
Tramite lo spooling le schede contenenti i job venivano subito lette e i job caricati su disco; in maniera analoga si operava per la gestione dell’uscita dei risultati, eliminando così per sempre la “scocciatura” del continuo spostamento di nastri magnetici da un calcolatore all’altro.

In questi sistemi, detti a lotti multiprogrammati, si presentarono per la prima volta nuove problematiche:

Il desiderio di un veloce tempo di risposta portò ben presto al timesharing (condivisione di tempo), una variante della multiprogrammazione che permetteva a più utenti di avere un terminale ciascuno.

In questi sistemi la CPU veniva assegnata a turno ai vari utenti che ne richiedevano l’uso e venne reso disponibile un servizio interattivo molto veloce, sfruttando i tempi di inattività degli utenti che stavano pensando, parlando o prendendo il caffè per eseguire i job degli altri.
I primi sistemi operativi timesharing furono il CTSS, sviluppato dal 1962 al MIT (Massachussets Institute of Technology) e l’ambizioso MULTICS (MULTiplexed Information and Computing Service), sviluppato nella seconda metà degli anni 60 da gruppi del MIT, dei laboratori Bell e della GE (General Electric).
Entrambi i sistemi non ebbero rilevanza commerciale a causa della mancanza di un necessario hardware per la protezione e MULTICS in particolare fu un fiasco.
Tuttavia quest’ultimo preparò la strada alla creazione di uno dei più popolari ed efficienti sistemi operativi di tutti i tempi: UNIX.
Vedremo in che modo ciò avvenne nella prossima puntata.

 

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