Storia dei sistemi operativi
Prima dei sistemi operativi:
In un periodo delimitabile tra il 1945 e il 1955 gli
elaboratori elettronici erano ammassi di valvole termoioniche,
occupavano intere stanze, erano lentissimi e così costosi che
potevano permetterseli soltanto grossi centri di calcolo o Università
o sovrani particolarmente facoltosi. Inoltre questi calcolatori erano
molto inaffidabili, in quanto le valvole che li componevano si
rompevano spesso. In questo periodo non esisteva ancora il concetto
di Sistema Operativo; infatti il programma da eseguire veniva
inserito ad ogni esecuzione in codice binario attraverso dei
primitivi lettori di schede perforate e dopo alcune ore il risultato
veniva inviato ad una stampante.
I primi sistemi operativi:
Tra il 1955 e il 1965, grazie alla rivoluzionaria
invenzione del transistor gli elaboratori
(chiamati mainframe) divennero abbastanza affidabili da poter
essere costruiti e venduti in serie, anche se erano comunque macchine
grosse e costosissime tanto che gli unici acquirenti possibili erano
ancora una volta i Centri di Calcolo, le Università e le banche.
Per eseguire dei programmi (o come venivano chiamati, job),
un programmatore doveva scrivere il proprio programma su carta,
trasferirlo su schede, caricarlo nel computer, attendere il termine
dell'esecuzione e la stampa del risultato. Tale operazione era molto
dispendiosa in termini di tempo e non permetteva di sfruttare la
macchina durante le lunghe fasi di caricamento di dati e programmi.
Non essendo stata ancora introdotta la tecnologia di accesso diretto
alla memoria (DMA) durante le fasi di input/output il
processore era totalmente utilizzato per il controllo di queste
operazioni. È per questo che si adottò la soluzione del
sistema batch (a lotti): l'idea di base era quella di
dividere i tre lavori, ovvero il caricamento dei dati, il calcolo e
la stampa su macchine distinte. Il calcolo veniva affidato ad un
calcolatore centrale costoso come l'IBM 7094 mentre gli
elaboratori satelliti erano macchine più economiche come gli IBM
1401.
Il sistema operativo di questi mainframe doveva erogare
pochi semplici servizi: gestione dell'input/output, interpretazione
dei comandi contenuti nelle schede controllo e controllo
dell'esecuzione di programmi, sia quelli lanciati dall'utente, sia le
utilità di sistema. I sistemi operativi tipici per questi
elaboratori, per lo più programmati in Fortran e
in Assemblyerano il Fortran Monitor System (FMS) e
l'IBSYS.
Dai primi anni sessanta cominciò a farsi strada il
concetto di dispositivo virtuale e astrazione. Prima
di ciò un programmatore che avesse voluto comandare ad esempio una
stampante, doveva conoscere, nei minimi dettagli, il funzionamento a
basso livello della periferica, mentre a partire dall'introduzione
del concetto di periferica virtuale il sistema operativo avrebbe
fatto da intermediario tra utente e periferica. Nello stesso periodo
i sistemi operativi iniziarono a supportare il DMA e
lo SPOOL.
Il DMA (Direct Memory Access) è il sistema che permette
di trasferire interi blocchi di dati da memoria secondaria a memoria
centrale in modo completamente indipendente dal processore, il quale
può, nel frattempo, eseguire altre operazioni.
Lo SPOOL (Simultaneous Peripheral Operations On Line) è un
sistema che permette di gestire in maniera efficiente le code di job
di stampa.
Infine, ma non meno importante si assistette all'introduzione
delle "politiche di ordinamento dei job". Essi
venivano caricati ed eseguiti in maniera sequenziale, ma l'ordine di
esecuzione dei programmi era gestito da opportune politiche
implementate nel sistema operativo. Siamo ancora lontani da ciò che
sarà poi il time-sharing supportato da tutti i sistemi
operativi moderni, tuttavia è il germe che darà il via alla
implementazione della multiprogrammazione negli anni
successivi.
Nessun commento:
Posta un commento