Anni '60: Il time-sharing e l'espansione dei mainframe

Negli anni Sessanta, i computer mainframe si diffondono ulteriormente in ambito industriale, accademico e governativo, complici i transistor che ne hanno abbassato i costi (pur restando apparecchiature costose, destinate a banche, enti pubblici e grandi aziende). In questo decennio i sistemi operativi fanno passi da gigante: uno dei concetti chiave introdotti è quello di time-sharing, ossia la condivisione di tempo di calcolo tra più utenti contemporaneamente.

Nei primi anni ’60 al MIT viene realizzato uno dei primi sistemi time-sharing (il CTSS, Compatible Time-Sharing System), che permette a più programmatori collegati tramite telescriventi di interagire quasi in tempo reale con un unico mainframe. Nel 1961 Corbató e colleghi dimostrano il Compatible Time-Sharing System (CTSS) su un IBM 709. CTSS diviene operativo nel 1963 su un IBM 7090/7094 modificato ed è il primo sistema a fornire accesso simultaneo a diversi utenti tramite terminali.

ibm 7094 ctss

Operatori al lavoro su IBM 7094 con CTSS al MIT, 1964 circa. (Fonte: MIT Computation Center – immagine di pubblico dominio via Wikimedia Commons)

Il progetto più ambizioso del periodo è MULTICS, sviluppato congiuntamente da MIT, Bell Labs e General Electric: un sistema operativo multiutente concepito per servire centinaia di utenti simultanei. 

MULTICS si rivela molto complesso, ma introduce idee rivoluzionarie (come la gerarchia di directory e la protezione della memoria) che influenzeranno profondamente i sistemi futuri. Grazie al time-sharing, l’uso del computer diventa più interattivo: per la prima volta utenti diversi possono digitare comandi e ottenere risposte immediatamente, invece di attendere ore i risultati di un batch. Ciò allarga la platea di persone che hanno esperienza diretta col computer, ad esempio studenti universitari, marcando un primo, importante cambiamento sociale: il calcolatore cessa di essere un monolite che lavora nell’ombra e diventa uno strumento con cui si può dialogare.

CTSS permette a ogni utente di inviare comandi interattivi e ricevere subito risposta; l’OS gestiva gli I/O lasciando la CPU libera per altri calcoli, riducendo notevolmente i tempi di attesa rispetto all’elaborazione a lotti tradizionale.

Subito dopo CTSS arriva Multics (MULTiplexed Information and Computer Service), iniziato nel 1964 da MIT, General Electric e Bell Labs. Multics è un super-sistema di time-sharing pensato per gestire centinaia di utenti contemporaneamente, con l’hardware GE-645 dedicato. Introduce numerose idee innovative: è il primo OS a implementare un file system gerarchico di lunga vita, avanzati meccanismi di sicurezza (architettura a “ring” e controllo accessi per processi), e supporta l’aggiunta dinamica di CPU e memoria senza fermare il sistema.

Parallelamente, i sistemi operativi degli anni Sessanta aggiungono funzionalità essenziali per gestire al meglio l’hardware emergente. Si introduce il DMA (Direct Memory Access), che consente ai dispositivi di trasferire dati da/per la memoria senza impegnare continuamente la CPU, e lo spooling (acronimo di Simultaneous Peripheral Operations On Line), che permette di mettere in coda operazioni come la stampa mentre la CPU prosegue con altri compiti.

Inoltre diventa centrale il concetto di astrazione delle periferiche: il programmatore non deve più conoscere nei dettagli il funzionamento di ogni dispositivo (dischi, stampanti, ecc.), perché il sistema operativo funge da intermediario standardizzato. 

Un grande salto avviene nel 1964 con il lancio della famiglia IBM System/360 che, per la prima volta, vede progettate in modo unificato macchine di piccole e grandi dimensioni, tutte compatibili a livello di istruzioni. Insieme ai nuovi hardware, IBM introduce un unico sistema operativo di base, OS/360, concepito per supportare sia applicazioni scientifiche che gestionali.

ibm system 360

Foto dell’IBM System/360 Model 30 (Autore sconosciuto – via Wikimedia Commons)

OS/360 è un progetto colossale: sviluppato da migliaia di programmatori, conteneva milioni di righe di codice e centinaia di funzionalità.

La sua complessità causa numerosissimi bug, tanto che ogni nuova versione correggeva alcuni errori ma ne introduceva inevitabilmente di nuovi. Frederick Brooks, uno dei capi progetto, racconta le vicissitudini dello sviluppo di OS/360 nel famoso saggio The Mythical Man-Month. In generale, però, OS/360 stabilisce nuovi standard: fu tra i primi sistemi a integrare la multiprogrammazione e a separare nettamente architettura hardware e software di sistema.

A partire dagli anni ’60 diviene praticabile la multiprogrammazione: cioè la possibilità di tenere più programmi in memoria contemporaneamente, facendo alternare l’esecuzione quando uno è in attesa di I/O. In OS/360 (come in sistemi analoghi dell’epoca) il sistema operativo è in grado di sospendere un job bloccato su una periferica lenta e far girare nel frattempo un altro job pronto. Questo meccanismo richiede hardware dedicato per la protezione della memoria, ma ottimizza l’uso della CPU: senza multiprogrammazione, i velocissimi processori dei System/360 sarebbero stati spesso fermi in attesa di lettura/scrittura dei dati. In pratica, quando un programma deve attendere l’I/O, l’OS rimette subito in pista un altro job e al completamento dell’I/O, il job originale riprende la sua esecuzione dal punto di blocco.

Il risultato è un aumento drastico del throughput del sistema, benché il tempo totale di risposta per singolo lavoro (dal caricamento alla stampa) resti comunque dell’ordine di ore.

Sul fronte dei calcolatori di minori dimensioni, proprio negli anni ’60 nascono i minicomputer: il DEC PDP-1 nel 1961 costa una frazione di un grande IBM e apre la strada all’informatica in realtà più piccole.

Per questi mini-elaboratori vengono sviluppati sistemi operativi dedicati, spesso più snelli.

Verso la fine del decennio, un gruppo di ricercatori dei Bell Laboratories (Ken Thompson, Dennis Ritchie e altri) getta le basi di Unix, inizialmente un progetto personale nato nel 1969 su un piccolo PDP-7, destinato a diventare uno dei pilastri della storia dei sistemi operativi. La società intanto assiste incuriosita ai progressi della tecnologia informatica: i computer rimangono strumenti d’élite, ma l’idea che possano servire a molteplici utenti e applicazioni comincia a prendere piede, sostenuta anche dalla competizione della Guerra Fredda che spinge investimenti in ricerca e sviluppo.

richie-n-thompson-pdp-11

Immagine storica di Ken Thompson e Dennis Ritchie al lavoro su un PDP-11 presso i Bell Labs – fonte: AT&T / Bell Labs (uso editoriale)

Tuttavia, Multics risulta troppo complesso: nel 1969 i Bell Labs abbandonano il progetto sapendo che non avrebbe fornito un sistema operante nel breve termine. Le tecnologie e idee di Multics, ad esempio la sicurezza integrata e il modular design, influenzano profondamente i sistemi operativi successivi, ma Multics stesso rimane poco diffuso (solo circa 80 istallazioni fino al 1985).

Free Joomla templates by Ltheme