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

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 288:
In seguito, anche giorni o mesi dopo, si poteva lanciare il programma caricandolo direttamente dal nastro, senza passare per le schede perforate.
Queste ultime servivano solo per modifiche al programma o per inserire i dati da elaborare.
 
L'uso di memorie secondarie persistenti (cioè le unità a nastro accessibili esplicitamente dai programmi applicativi) introduce i seguenti problemi per il sistema operativo:
* Dato che i programmi possono leggere da più unità nastro, la chiamata di sistema di ingresso adesso deve specificare da quale unità nastro intende leggere.
* Dato che i programmi possono scrivere su più unità nastro, la chiamata di sistema di uscita adesso deve specificare su quale unità nastro intende scrivere.
* Dato che i programmi possono leggere o scrivere lo stesso nastro più volte, e devono scoprire quali parti del nastro contengono dati validi e quali parti contengono i dati di una precedente scrittura, non più valida, ci devono essere nuove chiamate di sistema per riavvolgere il nastro, per scoprire quando il contenuto sul nastro è terminato, per marcare il nastro come terminato nel punto corrente.
 
Mentre i primi computer erano usati solamente per calcoli tecnici o scientifici, l'impiego di nastri magnetici disponibili ai programmi applicativi ha consentito l'utilizzo dei computer anche per elaborazioni di tipo gestionale, come la seguente.
Un nastro contiene l'elenco dei dipendenti di una grande azienda, ognuno con i suoi dati relativi al contratto di lavoro, in ordine di numero di matricola; un altro nastro contiene i dati sulle presenze al lavoro, su ferie e permessi goduti, e sulle giornate di malattia, in ordine di numero di matricola, e per ogni dipendente in ordine temporale.
Il programma legge dal primo nastro i dati di un dipendente, legge dal secondo i dati dello stesso dipendente, calcola la busta paga, e le scrive su un terzo nastro o la emette sul nastro di stampa.
 
== Le memorie secondarie persistenti ad accesso diretto ==
 
Grazie all'uso delle unità nastro e del loro supporto da parte del sistema operativo, sono stati possibili molti tipi di applicazioni del computer.
Tuttavia, per molti problemi le unità a nastro avevano un grosso difetto: i loro accesso era inerentemente sequenziale. Infatti se si doveva elaborare un dato che si trovava alla fine del nastro, e poi uno all'inizio, e poi uno ancora verso la fine, il computer passava moltissimo tempo ad aspettare che il nastro si svolgesse e riavvolgesse fino al punto dove si trovava il dato richiesto.
 
Per risolvere tali problemi sono necessarie memorie secondarie ad accesso diretto, cioè che consentono molto rapidamente l'accesso a qualunque dato in esse contenuto.
 
In effetti i tamburi sono ad accesso diretto, ma hanno un costo troppo elevato per memorizzare grandi quantità di dati (cioè superiori a 10 MB).
 
Perciò sono stati inventato i dischi magnetici, che sono sempre dispositivi magnetici rotanti, ma costituiti da una pila di dischi orizzontali fissati allo stesso perno verticale, e con una sola testina di lettura/scrittura per ogni disco.
Le testine sono fissate a un braccio verticale che, spostandosi rapidamente verso il perno dei dischi o lontano da tale perno, contente alle testine di accedere a tutta la superficie dei dischi.
 
Mentre per i tamburi il tempo di accesso è solo la latenza di rotazione del cilindro, per i dischi il tempo di accesso è la somma di tale latenza di rotazione con il tempo impiegato dalle testina a raggiungere il cilindro contenente le tracce su cui ci sono i dati a cui si è interessati.
 
Un tipico utilizzo dei dati persistenti su dispositivi ad accesso diretto era la ricerca di informazioni.
Per esempio, se un archivio su nastro contiene tutti i saldi dei conti correnti di una banca in ordine di numero di conto, e un altro archivio contiene tutti i movimenti della giornata in ordine temporale, e si vuole aggiornare i saldi dei conti correnti, si può procedere nel seguente modo:
* Si scandiscono i saldi dei conti correnti. Per ogni conto corrente, si cercano sull'archivio dei movimenti tutti i movimenti che lo riguardano, e si aggiorna il saldo.
Oppure, si può procedere nel seguente modo:
* Si scandiscono i movimenti dei conti correnti. Per ogni movimento, si cerca nell'archivio dei saldi il record relativo e lo si aggiorna.
In entrambi i casi, supponendo che sia i record dei movimenti che i record dei saldi siano così tanti da non essere contenuti in memoria, si devono effettuare un enorme numero di ricerche. E usando solo nastri magnetici, tali ricerche hannoavrebbero un costo proibitivo.
 
Invece, si può caricare su un disco magnetico l'elenco dei saldi, lasciare i movimenti su nastro, e usare il secondo dei due algoritmi citati sopra.
La ricerca su disco magnetico di un record contenente un saldo può essere effettuata cercando con un metodo dicotomico, eventualmente agevolato da un piccolo indice mantenuto in memoria principale.
 
L'uso didei memorie magnetiche persistenti ad accesso diretto, che d'ora in poi chiameremo semplicemente "dischi", faceva però sorgere il seguente problema.
 
Se l'elaboratore è usato in sequenza da numerosi programmi, e non ci sono tanti dischi quanti sono i programmi, si deve condividere tra più programmi la stessa unità disco con i suoi dati.