Sistemi operativi/Funzioni base: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 160:
 
==== Il flusso di controllo del sistema operativo ====
 
Si tenga presente che questa non è la descrizione di uno specifico sistema operativo, bensì una descrizione semplificata della modalità di funzionamento dei primi sistemi operativi esistenti negli anni '50.
 
Tramite l'uso delle schede di controllo e dai dispositivi di protezione hardware, il sistema operativo può avere la seguente operatività:
# Carica dal nastro magnetico di ingresso il primo record, verificando che si tratti di un record di inizio programma.
# Carica eventuali altri record che completino la descrizione del programma, verificandone la correttezza formale. Tra le informazioni lette, ci sono il tempo massimo previsto per l'esecuzione del programma, il numero di byte di memoria richiesti dal programma e dai suoi dati, e il numero massimo di record che potranno essere emessi.
# Carica i record che contengono il programma, fino a quello che segnala la fine del programma e l'inizio dei dati.
# Imposta il registro base all'indirizzo a partire dal quale è stato caricato il programma.
# Imposta il timer al tempo previsto per l'elaborazione.
# Imposta il processore in modalità utente.
# Salta alla prima istruzione del programma applicativo.
# Il programma applicativo esegue le sue istruzioni. Qualunque tentativo di eseguire istruzioni privilegiate o di accedere allo spazio di memoria riservato al sistema operativo provoca un interrupt. Anche il fatto che scatti il timer provoca un interrupt. L'interrupt provoca il passaggio del controllo alla routine del sistema operativo di gestione dell'interrupt, e l'impostazione del processore in modalità sistema. Tale routine emette in output un record di segnalazione dell'errore, provvede a leggere tutti i record di dati rimanenti fino al prossimo record di inizio programma e torna al punto 1.
# Quando il programma applicativo vuole leggere uno o più record dal nastro magnetico di ingresso o scrivere uno o più record sul nastro magnetico di uscita, esegue un'istruzione di chiamata di sistema, impostando in alcuni registri il tipo di operazione (lettura o scrittura), il numero della periferica, il numero di record da elaborare, e l'indirizzo di memoria da utilizzare per il trasferimento. Tale istruzione imposta automaticamente il processore in modalità sistema. Il sistema operativo effettua la lettura o la scrittura e poi memorizza in un registro l'esito dell'operazione, reimposta il processore in modalità utente, e salta all'istruzione del programma successiva a quella di chiamata di sitema.
# Quando il programma ha terminato il proprio compito, torna il controllo al sistema operativo, che emette sul nastro un record di fine elaborazione, e torna al punto 1.