martedì 28 maggio 2013

4) Storia dei sistemi operativi

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