Corso di Sistemi Operativi

Evoluzione dei sistemi operativi (I)

 

Prima di procedere oltre diamo una rapida occhiata alla storia dei sistemi operativi, esaminando in che modo si è giunti allo stato attuale attraverso un graduale processo di astrazione che ha reso le scelte progettuali dei sistemi operativi indipendenti dalle caratteristiche della macchina.
Si ritiene che il primo prototipo di calcolatore digitale si debba all’inglese Charles Babbage, che intorno alla metà dell’Ottocento progettò la “macchina analitica”, un apparecchio meccanico che egli non potè mai vedere realizzato a causa dell’impossibilità tecnologica di allora di realizzare gli ingranaggi e le parti meccaniche richieste con la dovuta precisione.
Da allora fino alla seconda guerra mondiale furono fatti pochissimi progessi nella realizzazione di calcolatori digitali.

Occorre attendere il 1945 per vedere comparire la prima generazione di calcolatori automatici, quando vari professori universitari e studiosi inglesi e americani (tra cui von Neumann) riuscirono a costrire delle enormi macchine di calcolo usando delle valvole elettroniche.
Questi apparecchi avevano dimensioni tali da riempire intere stanze e una velocità di calcolo a dir poco modesta in confronto al più scarso degli attuali personal computer.
Allora era lo stesso gruppo di persone ad occuparsi della progettazione, costruzione, programmazione e manutenzione di ogni macchina.
La programmazione era fatta esclusivamente in linguaggio macchina, ossia secondo codici binari direttamente eseguiti dal processore, ed era realizzata per mezzo di una serie di spinotti inseriti su particolari schede adibite al controllo delle più elementari funzioni della macchina.

I linguaggi di programmazione, compreso l’assembler, erano sconosciuti e di sistema operativo nemmeno si parlava.
Quasi tutte le applicazioni erano semplici calcoli numerici, come produzioni di tabelle di seni e coseni.
Fino alla metà degli anni 50 l’unico progresso riguardò la possibilità di scrivere i programmi su schede perforate, che potevano essere lette direttamente dal calcolatore, anziché usare gli spinotti.
A cambiare radicalmente la situazione intervenne l’introduzione dei transistor, che accrebbero l’affidabilità dei calcolatori così da renderne possibile la commercializzazione: entra in scena la seconda generazione dei calcolatori digitali.
Cominciarono allora a delinearsi dei profili professionali distinti tra progettisti, costruttori, operatori, programmatori e tecnici della manutenzione.

Questi primi sistemi, molto costosi, furono detti sistemi batch o sistemi di elaborazione a lotti e funzionavano nel seguente modo.
I calcoli che dovevano essere eseguiti dal computer erano memorizzati in un job, che poteva essere un singolo programma o un insieme di programmi.
Un piccolo calcolatore (relativamente) poco costoso (tipicamente l’IBM 1401) leggeva le schede perforate sulle quali erano memorizzati i job e li trasferiva su un nastro magnetico.
Quando il nastro aveva raccolto un lotto (batch) di lavoro, veniva riavvolto e inserito in un calcolatore più potente (prevalentemente l’IBM 7094), dotato dell’antenato degli attuali sistemi operativi, l’IBSYS.
Questo si occupava di leggere in sequenza i vari job e di eseguirli uno dopo l’altro memorizzando i risultati su un secondo nastro magnetico.

Una volta completato il lotto, venivano rimossi i nastri d’ingresso e di uscita, riavvolti, e il nastro di uscita veniva inserito in un altro IBM 1401 per stampare i dati ottenuti dall’elaborazione.
Tramite l’utilizzo dei nastri d’ingresso e di uscita, veniva realizzata una “primordiale” forma di concorrenza, potendo eseguire l’elaborazione dei lotti contemporaneamente alla memorizzazione del lotto successivo e alla stampa dei risultati di quello precedente.
Questa tecnica era detta spooling (dal termine inglese Simultaneous Operation On Line).
Essenzialmente i calcolatori della seconda generazione furono usati per eseguire calcoli scientifici e ingegneristici, anche perché il loro costo poteva essere sostenuto solo da grosse compagnie, dalle agenzie governative e dalle università.
Furono programmati in FORTRAN e in linguaggio assembler.
Accanto all’IBSYS un sistema operativo tipico di quegli anni era il FMS (Fortran Monitor System).

 

Torna all'indice Generale del corso di Corso di Sistemi Operativi di Software Planet