Evoluzione dei sistemi operativi

lezione
lezione
Evoluzione dei sistemi operativi
Tipo di risorsa Tipo: lezione
Materia di appartenenza Materia: Sistemi operativi

Storia dei sistemi operativi

modifica

Prima generazione (anni '50)

modifica

I primi calcolatori (basati sulle valvole e grandi come intere stanze) non disponevano di un vero e proprio sistema operativo. L'utente era anche il programmatore e si usava solamente il linguaggio macchina. I primi software si trovavano su schede di collegamento o schede perforate ed erano essenzialmente assemblatori, compilatori, linker (programmi che combinano più oggetti provenienti dal compilatore per formare un programma eseguibile) e loader (programmi che caricano altri programmi in memoria e ne preparano l'esecuzione).

Seconda generazione (1955-65)

modifica

A metà degli anni '50 il transistor andò a sostituire le valvole. In questi anni si introdusse la programmazione batch (o a lotti), che costituisce un primo rudimentale sistema operativo. L'idea era quella di usare delle schede di controllo per gestire la sequenza di programmi che andava eseguita sul calcolatore (cosa che inizialmente avveniva a mano) velocizzando così l'esecuzione. Inoltre si cercava di ridurre i tempi di setup raggruppando i programmi simili tra loro.

Il problema principale di questi computer era la lentezza delle operazioni di lettura dalle schede perforate. Per tentare di risolverlo spesso la sequenza di programmi presenti sulle schede perforate veniva caricata per mezzo di un altro computer su unità a nastro magnetico la cui lettura risulta più veloce.

Terza generazione (1965-80)

modifica

Viene introdotta la multiprogrammazione: quando un processo è in attesa perché sta facendo un'operazione di I/O [1] la CPU viene assegnata temporaneamente ad un altro processo in modo da evitare i tempi morti.

Inoltre, con l'introduzione degli hard disk, nacque anche una tecnica chiamata spooling (Simultaneous Peripheral Operation On Line). Si tratta in sostanza di un'evoluzione della tecnica che consisteva nel caricare i programmi dalle schede perforate al nastro magnetico. Nel caso dello spooling mentre si ha un processo in esecuzione il computer legge il programma successivo da un lettore di schede e lo carica in una specifica area del disco (coda dei job).

Negli anni '70 si crearono invece i primi sistemi time-sharing, nati per poter avere molti utenti che lavoravano contemporaneamente sullo stesso computer. Uno dei primi sistemi time-sharing fu Multics, dal quale derivò poi Unix.

Quarta generazione (1980-oggi)

modifica

Negli anni '80 nacquero i primi personal computer. Uno tra i più diffusi fu il PC IBM, con il quale venne introdotto anche il sistema operativo MS-DOS. Sempre in quegli anni la Apple (prendendo spunto da un'idea della Xerox) introdusse la prima interfaccia grafica (GUI). L'idea fu subito applicata anche dalla Microsoft con l'introduzione del sistema operativo Windows.

Negli ultimi anni sono stati sviluppati anche sistemi operativi di rete e sistemi operativi distribuiti. In entrambi si ha una distribuzione delle elaborazioni su più processori ma, mentre nei primi l'utente è consapevole dell'esistenza di più nodi/calcolatori, nei secondi l'utente può lavorare come se il computer avesse un unico processore, anche se nella realtà si tratta di un sistema multiprocessore.

  1. Da qui in poi verrà usato l'acronimo inglese I/O, cioè Input/Output, per indicare Ingresso/Uscita, con riferimento a operazioni relative alle periferiche del computer