Sistemi operativi/Evoluzione dei sistemi operativi: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 88:
# Quando il programma ha finito l'esecuzione, tornare al punto 1.
Questo software di base era un semplice caricatore ("loader"), ma, pur occupando un po' di memoria principale, consentiva una notevole riduzione dei tempi morti, a condizione che i programmi fossero corretti, cioè rispettassero le regole di utilizzo del computer.
Si tenga presente che stiamo parlando di elaboratori con
== Il monitor residente ==
Riga 95:
Quando l'elaboratore era completamente gestito da un programma per volta, qualunque cosa facesse tale programma, non danneggiava gli altri programmi. Comunque, se un programma non aveva finito la sua esecuzione dopo il tempo previsto, l'operatore lo arrestava e passava al programma successivo.
Usando il caricatore automatico, un programma poteva danneggiare gli altri programmi in molti modi,
* Continuare a funzionare indefinitamente, o comunque per un tempo superiore a quello economicamente conveniente.
* Non leggere tutti i dati spettanti, contenuti
* Continuare a leggere il nastro di ingresso dopo che sono finiti i dati spettanti al programma.
* Scrivere
* Sovrascrivere la parte di memoria principale in cui risiede il caricatore o i suoi dati, e quindi impedirne il funzionamento al termine del programma applicativo.
Per rimediare a tali problemi, si adottarono le seguenti soluzioni, descritte in dettaglio nelle sezioni successive:
* L'aggiunta di schede di controllo tra le sequenze di schede contenenti programmi e dati.
* La protezione hardware delle risorse (processore, memoria principale, unità a nastri).
Riga 113:
Il nastro di ingresso conteneva una sequenza di elaborazioni (dette anche "job"), ognuna strutturata nel seguente modo:
*
*
*
*
Pertanto In seguito, tali schede di controllo evolsero, aggiungendo sempre più informazioni, e diventarono veri linguaggi di comandi.
Per esempio, inizialmente i programmi erano scritti solamente in linguaggio macchina, ma rapidamente si passò al linguaggio assemblativo,
Pertanto, la scheda di inizio programma doveva indicare anche in quale linguaggio era scritto il programma stesso.
Leggendo la scheda si sapeva quale compilatore doveva essere utilizzato.
Altre informazioni contenute nelle schede di controllo erano
* il nome del programma e dell'utente, da stampare nel primo foglio emesso dal programma;
* la quantità di memoria massima richiesta dal programma;
* la durata massima dell'elaborazione;
* il numero massimo di pagine che verranno stampate come risultato.
Avendo a disposizione tali informazioni, il sistema operativo poteva ottimizzare l'allocazione delle risorse e terminare le elaborazioni che superassero i requisiti dichiarati.
|