Nascita dei sistemi operativi - Linux avanzato...

30
Nascita dei sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori Prima generazione Seconda generazione Terza generazione LA’13 1.1 Lezione 1 Nascita dei sistemi operativi Linux avanzato 8 marzo 2013 Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata

Transcript of Nascita dei sistemi operativi - Linux avanzato...

Page 1: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 2: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 3: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 4: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 5: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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)

Page 6: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 7: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 8: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 9: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 10: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 11: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 12: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 13: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 14: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 15: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 16: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 17: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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)

Page 18: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 19: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 20: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 21: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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)

Page 22: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 23: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 24: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 25: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 26: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 27: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 28: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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

Page 29: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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)

Page 30: Nascita dei sistemi operativi - Linux avanzato (2012-2013)la13.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · sistemi operativi Marco Cesati Schema della lezione Definizioni Precursori

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