Sistemi operativi/Evoluzione dei sistemi operativi: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
The Doc (discussione | contributi)
m Annullate le modifiche di 82.54.193.137 (discussione), riportata alla versione precedente di 79.47.40.65
Nessun oggetto della modifica
Riga 1:
== La preistoria ==
I primi elaboratori non avevano bisogno di un sistema operativo, in quanto venivano usati da un programma per volta.
 
All'inizio di ogni elaborazione, si caricavano i programmi e i dati da un pacco di schede perforate, o da un nastro perforato, o da un nastro magnetico, si eseguiva l'elaborazione, e si emettevano i risultati su stampante o su nastro magnetico.
I primi elaboratori elettronici (in seguito chiamati "computer") non avevano bisogno di unalcun sistema operativo, in quanto venivano usati da un programma per volta, con le seguenti modalità di utilizzo.
Per passare all'elaborazione successiva, si sostituivano i pacchi di schede e i nastri.
 
I programmi applicativi avevano accesso diretto a tutto l'hardware, tipicamente tramite librerie di routine di input/output.
I computer, essendo molto costosi, venivano usati non da singole persone, ma da gruppi di utenti, che solitamente erano matematici o ingegneri.
Ogni utente scriveva il programma da far eseguire al computer e i dati da elaborare perforando delle schede di cartoncino o un nastro di carta, usando una perforatrice meccanica, un oggetto simile a una macchina per scrivere, e prenotava un intervallo di tempo (di alcuni minuti o si alcune ore) nel quale l'elaboratore era a loro completa disposizione.
L'uso di un elaboratore era quindi simile all'uso di un campo da tennis di un centro sportivo.
 
Quando arrivava il proprio turno, l'utente inseriva il pacco di schede perforate o il nastro perforato in un apposito lettore, e avviava il computer.
Il computer caricava in memoria dal lettore di schede o di nastro dapprima il programma, ed eseguiva il programma caricato.
Tale programma solitamente caricava dallo stesso lettore di schede o di nastro i dati che seguivano il programma, ed eseguiva le istruzioni contenute nel programma, che solitamente terminavano con l'invio di caratteri ad una stampante ad alta velocità.
 
Al termine dell'elaborazione, l'utente se ne andava riprendendosi le sue schede o il suo nastro, ma anche i fogli stampati.
 
A questo punto, solitamente l'utente tornava nel suo ufficio a studiarsi i fogli stampati ed eventualmente usare tali informazioni per modificare il programma, o i suoi dati o per scrivere un nuovo programma, mentre il computer veniva usato da altri utenti.
 
I programmi applicativi avevano libero accesso diretto a tutto l'hardware, tipicamente tramite librerie di routine di input/output.
Si usavano routine di input per caricare i dati dal lettore di schede o di nastro, e routine di output per inviare caratteri alla stampante.
 
Questo modo di procedere aveva molti inconvenienti:
* L'utente potrebbe non essere pratico di come si controlla il computer, e dare comandi sbagliati.
* L'utente potrebbe eseguire lentamente le operazioni di carico delle schede o del nastro e di prelievo della carta dalla stampante.
* L'utente potrebbe aver prenotato un tempo insufficiente ad eseguire il programma, e quindi dover terminare il programma prima che abbia finito, o sforare nell'intervallo prenotato da un altro utente.
* L'utente potrebbe aver prenotato un tempo più lungo del necessario ad eseguire il programma, e quindi andarsene lasciando il computer inutilizzato prima che scada l'intervallo di tempo prenotato.
* Per sfruttare il computer in ogni ora del giorno e in ogni giorno della settimana, gli utenti erano costretti a fare turni notturni o festivi.
 
Pertanto, una prima evoluzione organizzativa è stata affidare l'esecuzione dei programmi ad un tecnico specializzato, chiamato "operatore".
Ogni utente consegnava all'operatore il proprio pacco di schede perforate o il proprio rotolo di nastro perforate, dichiarando, con una certa abbondanza, quanto tempo massimo avrebbe dovuto impiegare il programma, e poi se ne andava via.
L'operatore quindi aveva sempre a disposizione una manciata di pacchi di schede perforate o di nastri perforati pronti da essere caricati ed eseguiti.
 
Appena il computer segnalava il completamento di un programma, l'operatore inseriva nel lettore il nuovo programma in lista d'attesa, riavviava il computer, e andava a prendere le stampe del computer precedente.
 
Se un programma non era ancora terminato dopo che era trascorso il tempo dichiarato come massimo, il computer veniva bloccato forzosamente, e si passava al programma successivo.
Se viceversa un programma terminava prima del previsto, veniva subito caricato il programma successivo, senza lasciare lunghi tempi morti.
 
Dopo un congruo intervallo di tempo, tipicamente il giorno dopo, l'utente andava dall'operatore a farsi restituire le schede perforate o il nastro perforato, e a farsi dare i fogli stampati dal programma.
 
Ma anche con l'impiego di un operatore specializzato, non si utilizzava alcun sistema operativo.
 
== Il caricatore ==
Ci si rese rapidamente conto che tale procedimento era inefficiente, perché mentre l'operatore sostituiva i nastri e le schede, l'elaboratore era inutilizzato. Inoltre, per sfruttare l'elaboratore, occorreva la presenza continua di almeno un operatore.
Pertanto, si passò in seguito al seguente procedimento.
 
Ci si rese rapidamente conto che tale procedimento era comunque inefficiente, perché mentre l'operatore sostituiva i nastri e le schede, l'elaboratoreil computer era inutilizzato. Inoltre, per sfruttare l'elaboratore, occorreva la presenza continua di almeno un operatore.
* I pacchi di schede e i nastri perforati relativi a più elaborazioni venivano caricati in sequenza su uno stesso nastro magnetico, usando un dispositivo digitale dedicato, che non impegnasse l'elaboratore.
Inoltre, per sfruttare l'elaboratore, occorreva la presenza continua di almeno un operatore, e quest'ultimo doveva cronometrare il tempo di esecuzione del programma per arrestarlo quanto avesse superato il tempo massimo consentito.
* I programmi applicativi erano progettati in modo da leggere i dati esclusivamente da un nastro magnetico e scrivere i risultati esclusivamente su un altro nastro magnetico.
 
Per rimediare a questi inconvenienti è stato inventato un nuovo tipo di periferica di memorizzazione, il registratore digitale su nastri magnetici ad alta velocità.
Tale dispositivo si differenziava dai tradizionali registratori magnetici a bobine per il fatto che la registrazione era digitale invece che analogica, ma soprattutto per il fatto che il nastro scorreva per brevi tratti davanti alla testina ad una velocità superiore alla velocità di rotazione della bobina.
Pertanto, anche se le bobine mediamente giravano a bassa velocità, il nastro poteva essere letto o scritto a velocità molto maggiore per brevi tratti (alcune centinaia di caratteri).
 
Pertanto, si passò in seguito alalla seguente procedimento.architettura di elaborazione:
* L'operatore aveva a disposizione un apposito dispositivo digitale, che non impegnava il computer, che leggeva il contenuto di pacchi di schede o di nastri perforati relativi a più elaborazioni, e li scriveva in sequenza su un singolo nastro magnetico.
* L'operatore aveva a disposizione un apposito dispositivo digitale, che non impegnava il computer, che leggeva il contenuto di un nastro magnetico e lo inviava a una stampante.
* Le librerie di input/output sono state riscritte in modo da le istruzioni di input leggevano i dati esclusivamente da un nastro magnetico e le istruzioni di output scrivevano i risultati esclusivamente su un altro nastro magnetico. In tal modo, senza dover modificare il codice applicativo, i programmi che usavano le nuove routine di input/output comunicavano solamente con i nastri magnetici.
* L'elaboratore aveva a disposizione più unità a nastro magnetico, almeno due per la scrittura e due per la lettura. In tal modo, mentre l'operatore sostituiva un nastro, l'elaboratore ne utilizzava un altro.
 
* Un dispositivo digitale dedicato permetteva di stampare il contenuto di un nastro, senza impegnare l'elaboratore.
Questa architettura, congiunta all'uso di registratori magnetici ad alta velocità, consentiva il seguente procedimento di utilizzo del computer:
Con tale procedimento, fin tanto che i nastri di ingresso contenevano dati da elaborare e i dati di uscita avevano spazio per ricevere risultati, l'elaboratore non aveva mai tempi morti.
* I programmi e i dati vengono caricati dai supporti cartacei ai nastri magnetici.
* Un programma per volta viene caricato da un nastro magnetico alla memoria del computer.
* IIl programmi applicativi erano progettatiprogramma in modoesecuzione da leggerelegge i dati esclusivamente da un nastro magnetico e scriverescrive i risultati esclusivamente su un altro nastro magnetico.
* I risultati vengono inviati dai nastri magnetici alla stampante.
 
Con tale procedimento, fin tanto che i nastri di ingresso contenevano dati da elaborare e i datinastri di uscita avevano spazio per ricevere risultati, l'elaboratore non aveva mai tempi morti, e, pur di avere un numero sufficiente di registratori magnetici, i fattori limitanti della velocità di elaborazione erano la potenza del computer e la velocità del nastro magnetico, che era molto superiore a quella dei supporti cartacei.
 
Tuttavia, per ottenere questo risultato, è stato necessario sviluppare il primo rudimentale sistema operativo.