In questa sezione abbiamo compreso:
L'importanza del software per la gestione delle risorse di un elaboratore elettronico e la loro struttura di base,
La differenza fra le prime macchine monoprogrammabili (in grado di eseguire un solo programma per volta), esempio il sistema MS-DOS, alle successive e più evolute macchine multiprogrammabili, dette anche multitasking (in grado di eseguire più programmi contemporaneamente). I sistemi multitasking sono in grado di eseguire all’apparenza dell’utente più applicazioni contemporaneamente, in quanto il sistema operativo gestisce il tempo di sviluppo di un programma: tale procedura viene definita TIME SHARING. In generale il S.O. con il time sharing, nato dallo sfruttamento del tempo inutilizzato che intercorreva, nei sistemi monoprogrammabili, tra gli ordini richiesti dall’utente al sistema e l’istante prima che il processore elaborasse i dati e gli ordini ricevuti, salva e apre, a intervalli regolari di tempo, le elaborazioni di un programma e relativi a un programma in esecuzione: Supponiamo di avere due programmi in esecuzione nello stesso momento, il S.O. fa in modo che per un certo intervallo di tempo i dati di un programma vengano elaborati, dopodichè scaduto il tempo il S.O. salva i dati del programma in esecuzione lo mette in “attesa” e vengono aperti i dati relativi al secondo programma perché siano elaborati ripetendo il procedimento sopra descritto.
La differenza fra software applicativo e software di sistema:
_Il primo ha il compito di effettuare il collegamento tra i programmi applicativi e l’hardware del sistema, e può essere suddiviso in ROM BIOS (provvede a tutte le funzioni necessarie per un corretto avvio del sistema e poi al caricamento del sistema operativo su disco) e sistema operativo (presiede a tutte a tutte le fondamentali operazioni che riguardano il trattamento dei file su disco, la gestione del video, della tastiera, della stampante e delle altre periferiche presenti nel sistema).
_Il secondo è costituito da tutti quei programmi utilizzati sia per la programmazione di base (linguaggi di programmazione), che per lo svolgimento di particolari compiti di diversa natura.