Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.1
Lezione 1Nascita dei sistemi operativi
Linux avanzato
8 marzo 2013
Marco Cesati
System Programming Research GroupUniversità degli Studi di Roma Tor Vergata
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.2
Di cosa parliamo in questa lezione?
Nascita ed evoluzione dei sistemi operativi
1 Definizioni di base2 Precursori dei calcolatori elettronici3 La prima generazione di calcolatori e SO4 La seconda generazione di calcolatori e SO5 La terza generazione di calcolatori e SO
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.3
Il calcolatore elettronico
Calcolatore elettronico
È una macchina:costituita prevalentemente da dispositivi micro-elettroniciin grado di elaborare informazioni in ingressoin grado di produrre informazioni in uscitautilizzante un programma
definito completamente dall’utente
immagazzinato in memoria insieme ai dati
In un calcolatore elettronico è l’utente a definire ilcomportamento della macchina, inteso come modo dielaborare le informazioni in ingresso, non il progettista
Di conseguenza, il calcolatore elettronico è una macchinauniversale, in grado di emulare il comportamento di ognimacchina progettata dall’uomo
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.4
Definizione di sistema operativo
Collezione di programmi di base per la gestione delleperiferiche hardware del calcolatore e per la creazione diun ambiente per l’esecuzione controllata dei programmiapplicativi da parte degli utenti finali
Programma di controllo delle periferiche
Creatore di una astrazione dei dispositivi hardware
Assegnatore delle risorse di sistema ai programmi inesecuzione
Ottimizzatore del sistema per soddisfare le aspettativedell’utente finale
Realizzatore dell’interfaccia di comunicazione tra l’utentefinale ed il calcolatore
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.5
Evoluzione dei sistemi operativi
Il sistema operativo è un programma di base strettamentecorrelato all’architettura del calcolatore elettronico
Perciò i sistemi operativi si evolvono di pari passo con icalcolatori elettronici
I precursori dei calcolatori elettronici:Versuchsmodell-1, -2, -3 e -4Automatic Sequence Controlled CalculatorAtanasoff-Berry CalculatorColossusElectronic Numerical Integrator and Computer (ENIAC)
I primi calcolatori elettronici:Analytical Engine di BabbageManchester Small-Scale Experimental MachineElectronic Discrete Variable Automatic Computer (EDVAC)Ferranti Mark 1Universal Automatic Computer (UNIVAC)
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.6
Versuchsmodel-1, -2, -3 e -4
Progettati da K. Zuse a Berlino tra il 1936 ed il 1944Elettromeccanici, con programma su nastro di celluloideLogica binaria, capaci di operazioni in virgola mobile
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.7
Automatic Sequence Controlled Calculator
Progettato da H. H. Aiken tra il 1937 ed il 1942 presso ilaboratori IBMDonato all’università di Harvard col nome “Harvard Mark I”Elettromeccanico, con programma su nastro perforato
John Kopplin 2002
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.8
Atanasoff-Berry computer
Progettato da J.V. Atanasoff e costruito insieme a C. Berrytra il 1937 ed il 1941 all’università dello IowaTotalmente elettronico e con aritmetica binariaNon programmabile e senza salti condizionati
John Kopplin 2002
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.9
Colossus
Costruito da T. Flowers nel 1944 con valvole elettronicheImpiegato a Bletchley Park (UK) per decifrare i messaggidelle telescriventi e macchine cifranti tedesche
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.10
Electronic Numerical Integrator and Computer (ENIAC)
Ideato da J.W. Mauchly nel 1941Realizzato insieme a J.P. Eckert nel 1945 a FiladelfiaBasato su 18 000 valvole elettroniche
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.11
I primi calcolatori elettronici
Prima idea di calcolatore: Analytical Engine di C. Babbage(1791–1871)
Il programma della macchina è immagazzinato entro unamemoria, analogamente ai dati su cui il programma opera
Idea ripresa all’inizio del ventesimo secolo da moltiscienziati, quali A. Turing, K. Zuse, J.P. Eckert, J. Mauchly,J. von Neumann
1948: entra in funzione il primo calcolatore elettronico conprogramma in memoria centrale: Manchester Small-ScaleExperimental Machine
1949: completamento del progetto Electronic DiscreteVariable Automatic Computer (EDVAC)
1951: primo computer commerciale: Ferranti Mark 1,evoluzione del progetto SSEM di Manchester
1952: prime consegne dell’UNIVAC I, il primo computercommerciale prodotto in USA
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.12
Manchester Small-Scale Experimental Machine (SSEM)
1948: primo calcolatore elettronico con programma inmemoria centrale ad entrare in funzioneCostruito da F.C. Williams ed altri all’università diManchester (UK)Memoria di 32 registri a 32 bit, un registro accumulatoreed un registro per l’istruzione corrente
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.13
Electronic Discrete Variable Automatic Computer (EDVAC)
Progetto di Mauchly e Eckert del 1944Descritto in un articolo di J. von Neumann del 1945Ispiratore del progetto SSEM di ManchesterCompletato solo nel 1949, quando ormai diversi altricalcolatori erano già in funzione
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.14
Ferranti Mark 1
Evoluzione del progetto SSEM di ManchesterCommercializzato da Ferranti e venduto all’università diManchester nel febbraio 1951
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.15
UNIVAC I
UNIVAC I: Universal Automatic ComputerProgettato da P. Eckert e J. Mauchly5200 valvole elettroniche, clock a 2.25 MHz, 1905operazioni/secCosto fino a 1 500 000 $A partire dal 1952, consegnati 46 esemplariNon per calcolo scientifico, ma commerciale e statistico
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.16
Uso dei calcolatori elettronici di prima generazione
Macchine estremamente grandi ecostose
L’operatore era spesso anche ilprogrammatore
Una console di comando consentiva di:
Caricare il programma in memoria usando interruttori sullaconsole (una istruzione alla volta)Caricare il programma in memoria decodificando un nastrodi carta od un pacco di schede perforateImpostare l’indirizzo iniziale del programmaAvviare l’esecuzione del programmaControllare lo stato d’esecuzione tramite spie luminoseFermare il programmaStampare lo stato dei registri e della memoriaCorreggere il programmaStampare l’output del programma su nastri di carta, schedeperforate, stampante o telescrivente
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.17
Progressi nell’uso dei calcolatori
Col tempo vennero sviluppati nuovi dispositivi di I/O, quali:
Nastri magneticiTerminali (macchine per scrivere adattate per la console)
Per ciascun dispositivo di I/O si doveva scrivere una proceduraspeciale per utilizzarlo (driver di dispositivo)
Vennero sviluppate librerie contenenti i driver di dispositivi ealtre funzioni comuni che venivano copiate, secondo necessità,nel programma da eseguire
Vennero anche sviluppati nuovi programmi:
Assemblatori, per facilitare la programmazione utilizzandocodici simbolici ed etichette
Compilatori per linguaggi quali FORTRAN (∼1954), LISP(∼1958), ALGOL (∼1958), COBOL (∼1959)
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.18
Esempio di procedura per l’esecuzione di un programma
1 Installazione del nastro con il compilatore2 Caricamento del programma3 Esecuzione del compilatore4 Rimozione del nastro del compilatore5 Installazione del nastro con l’assemblatore6 Caricamento del file assembler7 Esecuzione dell’assemblatore8 Rimozione del nastro dell’assemblatore9 Caricamento del file oggetto
10 Esecuzione del programma oggetto
In caso d’errore si ricominciava da capo!
La maggior parte del tempo il calcolatore elettronico erainattivo, in attesa delle operazioni manuali dell’operatore
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.19
Separazione tra operatore e programmatore
Per diminuire i tempi morti del calcolatore, l’operatoredivenne una figura professionale differente dalprogrammatore
I vari programmatori consegnavano all’operatore un paccodi schede perforate (il job, o programma da eseguire)
L’operatore eseguiva uno dopo l’altro tutti i job ricevuti
In caso di errore, l’operatore lo segnalava alla fine dellagiornata al programmatore
Il programmatore non poteva più entrare nella stanza delcalcolatore, e doveva effettuare il debug esclusivamentesulla base delle informazioni avute dall’operatorePer diminuire i tempi morti del calcolatore, l’operatoresuddivideva i job in lotti (o batch)
Ad esempio, raggruppava tutti i programmi scritti inFORTRAN in un lotto, e quelli scritti in COBOL in un altro lotto
Così caricava una volta sola il nastro con il compilatoreFORTRAN ed una volta sola il nastro con il COBOL
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.20
Sistemi operativi per i calcolatori di seconda generazione
Negli anni ’50 e ’60 si diffondono i primi sistemi operativi
Basati su monitor residenti
Sistemi monoprogrammati
Schedulazione dei job a lotti
Con I/O sovrapposto e spooling
Con semplici JCL (Job Control Language)
Esempi: FMS (Fortran Monitor System), IBSYS (IBM7094), ATLAS, CTSS
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.21
Monitor residente
I sistemi operativi nascono essenzialmente tentando diautomatizzare il lavoro dell’operatore per mezzo di unsequenzializzatore automatico dei lavori di elaborazione:
Un piccolo programma chiamato monitor residente(batch monitor) era stabilmente in memoria centrale
Il monitor gestiva il trasferimento automaticodell’elaborazione da un job al successivo
Il monitor era informato sulla sequenza dei job da eseguiretramite schede di controllo inframmezzate alle schedeperforate dei job
Il monitor era perciò costituito da
l’interprete delle schede di controllo
il caricatore in memoria dei programmi
i driver dei dispositivi di I/O (spesso usati anche daiprogrammi applicativi)
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.22
I/O sovrapposto
Il monitor residente consentì di ridurre i tempi morti dielaborazione, ma presto il collo di bottiglia divennero idispositivi di I/O
All’inizio degli anni ’60 si utilizzavano come dispositivi di I/O
lettori di schede perforate (per l’input)
stampanti o perforatori di schede (per l’output)
nastri magnetici, per velocizzare l’input e l’output
le schede perforate venivano riversate su nastro, quandoquesto era pieno veniva installato sul calcolatorel’output del calcolatore veniva salvato su nastro, quandoquesto era pieno veniva stampato o riversato su schede
Era possibile avere diversi sistemi di conversionescheda–nastro e nastro–stampante, così da avere unnumero di nastri sempre pronti sufficiente a tenereoccupato il calcolatore
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.23
Spooling
Il limite maggiore dei nastri è che sono dispositivi ad accessosequenziale
prima dell’utilizzo debbono essere riavvolti
I dischi magnetici non hanno questa limitazione
hanno perciò soppiantato i nastri magnetici
Spooling
La tecnica dello spooling (simultaneous peripheral operationon line) permette di adoperare il disco magnetico come unamemoria di transito ad alta velocità per i dati di input e di output
Lo spooling consente di collegare direttamente al calcolatore idispositivi di I/O più lenti, perché i trasferimenti vengonoeffettuati in parallelo al lavoro della CPU
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.24
Esempio di job in FMS
$JOB scheda inizio di un job (programma)
$FORTRAN scheda inizio di un programma FORTRAN... schede istruzioni in FORTRAN
$LOAD scheda fine programma, caricamento in memoria
$RUN scheda esecuzione del programma... schede di dati del programma
$END scheda fine dei dati del programma
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.25
Sistema operativo ATLAS
Progettato all’università di Manchester, ∼1960
Costituito principalmente da driver di dispositivi
Chiamate di sistema realizzate tramite istruzioni speciali
Sistema operativo a lotti con spooling
Memoria centrale costituita da un tamburo magnetico da98K parole da 48 bit
Memoria cache costituita da memoria a nuclei magneticida 16K di parole a 48 bit
Memoria organizzata in pagine da 512 parole
Meccanismo di memoria virtuale realizzato da memoriaassociativa di 32 registri
Trasferimento tra memoria centrale e memoria cachetramite paginazione su richiesta (page on demand)
Algoritmo predittivo di sostituzione delle pagine inmemoria cache basato su un bit impostato ad ogniaccesso ad una pagina fisica
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.26
CTSS
Compatible Time-Sharing System
Progettato al MIT, ∼1961
Sebbene installato su due soli calcolatori, ha influenzatomolto lo sviluppo dei SO successivi
Sistema multiutente, interattivo, a partizione di tempo
Compatibile con il sistema batch IBM FMS
Fino a 32 utenti interattivi che potevano manipolare file,compilare ed eseguire programmi interagendo con unterminale
Implementa uno dei primi sistemi tipografici: RUNOFF
Implementa uno dei primi sistemi di scambio messaggi tragli utenti
Implementa un rudimentale meccanismo di scripting deicomandi
Il suo immediato successore è stato il sistema Multics
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.27
Sistemi operativi per calcolatori di terza generazione
Lo sviluppo tecnologico rende i processori sempre più veloci⇒ aumenta il collo di bottiglia delle periferiche di I/O
Accanto ai mainframe si diffondono minicalcolatori come quellidella serie DEC PDP
Tra il 1965 ed il 1980 vengono sviluppati diversi sistemioperativi di nuova generazione:
Sistemi multiprogrammati (multitasking)
Partizionamento del tempo di elaborazione (time sharing)
Offrono servizi di calcolo ad una comunità di utenti
Interazione tra utente e calcolatore tramite un terminale,eventualmente distante e collegato da una linea telefonica
Esempi: XDS-940, Multics, OS/360
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.28
XSD-940
Progettato all’università della California di Berkeley, ∼1965Gestione della memoria con paginazione, solo perrilocazione del codiceMemoria virtuale di ogni processo di 16K paroleMemoria fisica di 64K parole, pagine da 2K paroleSistema operativo multiprogrammato a partizione di tempo(time sharing)Possibilità di condividere tra più processi le pagine fisiche,quando di sola letturaI processi erano memorizzati su un tamburo magneticoDue modalità d’esecuzione dei processi: modo utente(non privilegiato) e modo kernel (privilegiato)Gestione del tamburo con file suddivisi in blocchi da 256paroleChiamate di sistema per creare e distruggere processiComunicazione tra processi tramite condivisione dellamemoria
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.29
Multics
Multiplexed Information and Computing ServiceProgettato da MIT, General Electric e Bell Lab., ∼1964Sistema a partizione di tempoServizio di calcolo fornito ad una città come Boston,analogamente all’elettricità o all’acquaMemoria virtuale, con indirizzi costituiti da numero disegmento e offsetSegmenti suddivisi in pagine da 1K parole da 36 bitOgni segmento era anche un file e vi si poteva accederetramite il nome del fileCollegamento dinamico dei segmenti ad un processoIl file system era una struttura ad albero a più livelli,estendibile a piacere dagli utentiProtezione garantita da
una lista di controllo degli accessi associata ad ogni fileun insieme di livelli di protezione per i processi
Supporto a multiprocessore, con riconfigurazionedinamica di CPU, banchi di memoria, dischi, ecc.Scritto in linguaggio ad alto livello (PL/I)
Nascita deisistemi operativi
Marco Cesati
Schema della lezione
Definizioni
Precursori
Prima generazione
Seconda generazione
Terza generazione
LA’13 1.30
OS/360
Il progetto IBM/360 era una famiglia di calcolatori conmacchine di ogni dimensione
Tutti i calcolatori utilizzavano un insieme comune di programmied un unico sistema operativo: l’OS/360, ∼1966
Sistema operativo estremamente complicato da utilizzare
Inizialmente scritto in assembler da migliaia diprogrammatori
Utilizzava quasi il 50% del tempo di CPU
Sistema operativo a lotti (il partizionamento di tempo èstato introdotto successivamente)
Tre varianti principali:
PCP: mono-programmatoMFT: multiprogrammato con numero di processi fissatoMVT: multiprogrammato con numero di processi dinamico
Top Related