THE
sistema operativo
SviluppatoreEdsger Dijkstra ed altri (Technische Hogeschool Eindhoven)
Release iniziale (1968)
Piattaforme supportateElectrologica X8
Stadio di sviluppoStorico

Il THE fu il primo sistema operativo progettato a strati e venne realizzato alla Technische Hogeschool Eindhoven nei Paesi Bassi da Edsger Dijkstra e dai suoi studenti e pubblicato nel 1968. Edsger Dijkstra non gli ha mai dato un nome ufficiale, essendo THE semplicemente un acronimo dal nome dell'università in cui è stato creato.

Descrizione

[modifica | modifica wikitesto]

Il sistema THE era un semplice sistema batch per un computer olandese, l'Electrologica X8, che aveva 32 K di parole a 27 bit. Il sistema fu notato principalmente per il suo progetto semplice e lineare, soprattutto per la sua struttura a livelli, e per l'uso di un gruppo di processi concorrenti che impiegavano semafori per la sincronizzazione. Il sistema operativo stesso fu creato come un insieme di processi tra loro cooperanti. Inoltre, furono creati cinque processi utente che servivano come agenti attivi per compilare, eseguire e stampare i programmi utente. Quando un job veniva concluso, il processo ritornava alla coda di input per selezionare un altro job. Questo sistema utilizzava un algoritmo di schedulazione della CPU basato sulle priorità, che venivano ricalcolate ogni 2 secondi ed erano inversamente proporzionali al tempo in cui la CPU era stata usata recentemente (negli ultimi 8-10 secondi). Questo schema dava maggiore importanza ai processi I/O bound e a quelli nuovi.

La gestione della memoria era limitata dalla mancanza di supporto hardware. Tuttavia, dato che il sistema era limitato e i programmi potevano essere scritti solo in ALGOL, veniva usato un sistema di paginazione software. Il compilatore ALGOL generava automaticamente chiamate alle routine di sistema, che assicuravano la presenza in memoria delle informazioni richieste, usando lo swapping, se necessario. Il dispositivo di immagazzinamento dei dati era una memoria a tamburo di 512 KB parole. Veniva utilizzata una pagina di 512 parole, con una strategia di sostituzione di pagina LRU (Least Recently Used).

Un'altra delle caratteristiche principali del sistema THE era il controllo degli stalli. Per evitare che si verificassero stalli, veniva usato l'algoritmo del banchiere.

Struttura "a strati"

[modifica | modifica wikitesto]

Il sistema aveva 6 livelli ed era così strutturato:

Livello Funzione
5 Operatore
4 Programmi utente
3 Gestione input/output
2 Comunicazioni processo/console
1 Gestione della memoria e del tamburo
0 Allocazione della CPU e multiprogrammazione

In questa struttura detta "a strati" ogni livello aveva un compito ben preciso:

Un'ulteriore generalizzazione del concetto di stratificazione era presente nel sistema Multics, progenitore di UNIX. Lo schema a strati del THE era in realtà solo una convenzione progettuale, poiché tutte le parti del sistema venivano alla fine collegate insieme in un unico programma oggetto.

Bibliografia

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica