01a-sistemi operativi (storia) oper… · 1 sistemi"operavi" storia «preistoria»"...
TRANSCRIPT
1
Sistemi Opera-vi
Storia
«Preistoria» • I primi computer moderni
(1945-‐1955) (senza par- di -po meccanico) sfru@avano la tecnologia a valvole ed anche se erano poco poten- ed affidabili, erano di dimensioni enormi e potevano occupare intere stanze
• Un team di specialis- costruiva, manteneva e programmava la macchina (in linguaggio macchina)
• Non c'era sistema opera/vo, nemmeno l'assembler, bisognava eseguire un programma per volta
Prima dei Sistemi Opera-vi • I computer erano len-ssimi e
molto costosi • Potevano perme@erseli soltanto
governi, grossi centri di calcolo o Università
• Erano molto inaffidabili, in quanto le valvole che li componevano si rompevano spesso
• Il programma da eseguire veniva inserito ad ogni esecuzione in codice binario a@raverso dei primi-vi le@ori di schede perforate e dopo alcune ore il risultato veniva inviato ad una stampante
Personaggi … • Howard Aiken, Harward. Harvard
MARK-‐1 ; • John Von Neumann, Ins-tute for
Advanced Study in Princeton. EDVAC;
• J. P. Eckert e W. Mauchley, University of Pennsylvania. H. Golds-ne, A. Turing. ENIAC ;
• K. Zuse, Germany. Z3.
Macchina di Von Neuman • Programma memorizzabile
come i da- • Istruzioni in memoria: decidere
il programma specificando una porzione di memoria
• Idea di John von Neumann (consulente ENIAC)
• Proposta di nuovo calcolatore (1945): EDVAC (Electronic Discrete Variable Computer)
• Nuovo elaboratore completo nel 1952 (IAS, presso Ins-tute for Advanced Studies, Princeton)
I primi Sistemi Opera-vi • La rivoluzionaria invenzione del transistor determina la nascita degli elaboratori di
seconda generazione (1955-‐1965) • Perme@ono di usare i linguaggi di programmazione quali il Fortran e l'Assembler • Si delinea sempre più marcatamente la separazione tra:
• -‐ progehs- (di computer) • -‐ costru@ori (di computer) • -‐ operatori (di computer) • -‐ programmatori • -‐ personale adde@o al mantenimento (tecnici)
2
Sistemi batch • Per eseguire dei programmi (o come venivano chiama- job), un programmatore
doveva scrivere il proprio programma su carta, trasferirlo su schede, caricarlo nel computer, aspe@are che il computer avesse eseguito il calcolo e quindi stampare il risultato
• Tale operazione era molto dispendiosa in fa@ori di tempo • Si ado@ò la soluzione del sistema batch (a lo3): l'idea di base era quella di
dividere i tre lavori, ovvero il caricamento dei da-, il calcolo e la stampa
Batch: vantaggi
• Ridurre il tempo raggruppando lavori simili (Fortran, Assembler, COBOL)
• Sequenzializzazione automa-ca dei Job: automa-camente il controllo passa da un Job al successivo
• Caricamento automa-co del compilatore • Caricamento automa-co dell'assemblatore
Batch: funzionamento • L'idea è quella di impilare le schede perforate in un vassoio di input di un
calcolatore di basso costo che ha solo il compito di trasferire i programmi, dello stesso linguaggio, su nastro magne-co in modo sequenziale
• Ogni volta che una bobina è completata, viene montata sul calcolatore centrale, il main. A sua volta il main scrive l'output in modo sequenziale su un altro nastro magne-co
• Il nastro viene montato su di un altro computer di basse prestazioni per trascrivere l'output su carta, che verrà consegnata al programmatore
IBM 1401 – IBM 7094 • Le macchine più u-lizzate negli anni (‘60) per implementare
sistemi batch erano – IBM 1401, per il caricamento dei da- e la stampa – IBM 7094 per il calcolo (macchina più potente e costosa)
• I sistemi opera-vi -pici per ques- elaboratori, per lo più programma- in FORTRAN e in Assembler erano il FMS (Fortran Monitor System) e l'IBSYS
• Il Sistema Opera-vo di ques- Mainframe doveva erogare pochi semplici servizi: ges-one dell'input/output, interpretazione dei comandi contenu- nelle schede controllo e controllo dell'esecuzione di programmi, sia quelli lancia- dall'utente, sia le u-lità di sistema
IBM 1401 IBM 7094
3
I primi Sistemi Opera-vi
• Durante l'esecuzione dei programmi, su nastro magne-co, vengono esegui- anche altri programmi di ges-one per l'esecuzione del compilatore Fortran, dell'assemblatore e per il corre@o caricamento (delle istruzioni e dei da-) dei programmi scrih dai programmatori
• Tali operazioni di ges-one vengono fornite da uno speciale programma, il primo rudimentale sistema opera-vo: monitor residente
La terza generazione • L’avvento dei circui- integra- (IC) determinò la nascita dei
computer di terza generazione (1965-‐80) e, di conseguenza, dei nuovi Sistemi Opera-vi
• Nello stesso periodo i Sistemi Opera-vi iniziarono a supportare il DMA e lo SPOOL – Il DMA (Direct Memory Access) è il sistema che perme@e di trasferire interi blocchi di da- da memoria secondaria a memoria centrale in modo completamente indipendente dal processore, il quale può, nel fra@empo, eseguire altre operazioni
– Lo SPOOL (Simultaneous Peripheral Opera-ons On Line) è un sistema che perme@e di ges-re in maniera efficiente le code di job di stampa
L’IBM System/360
• Nell'aprile del '64 l'IBM presentò una famiglia di computer chiamata IBM System/360, prima realizzazione di una ne@a dis-nzione tra archite@ura hardware e implementazione
• Tuh gli elaboratori della suite, che andavano da piccole macchine a grandi Mainframe u-lizzavano varian- dello stesso Sistema Opera-vo, l'OS/360, che supportava sia il calcolo scien-fico che quello commerciale
• Tu@avia questa eccessiva diversificazione tra i diversi computer rese difficile scrivere codice efficiente che rispe@asse tuh i requisi- che erano in confli@o tra di loro
• Il risultato fu un Sistema Opera-vo enorme e molto complesso scri@o da migliaia di programmatori. OS/360 conteneva cen-naia di errori che resero necessarie diverse revisioni. Purtroppo ogni nuova versione correggeva alcuni problemi, introducendone però degli altri
La mul-programmazione • Nell’OS/360 e in mol- altri Sistemi Opera-vi dell'epoca venne
implementata la mul/programmazione, che rendeva possibile la presenza di più programmi in memoria contemporaneamente
• Quando un job in esecuzione aveva bisogno di effe@uare una operazione di I/O il Sistema Opera-vo lo sospendeva e al suo posto faceva girare un altro job
• Quando l'operazione di I/O si concludeva il primo job tornava pronto all'esecuzione e a@endeva il suo turno a@endendo la sospensione di uno degli altri
• Questo rendeva necessaria la presenza di hardware specializzato per proteggere i programmi dalle reciproche interferenze
Il Timesharing (1)
• Ogni utente ha un terminale proprio collegato al calcolatore centrale.
• Ad ogni programma viene assegnato un intervallo di tempo durante il quale le sue istruzioni vengono eseguite dalla CPU
• Scaduto tale intervallo di tempo, il processore con-nua (inizia) l'esecuzione delle istruzioni di un altro programma per la durata del prossimo intervallo di tempo
Il Timesharing (2) • Nel 1962 venne realizzato al MIT il primo sistema di
-mesharing su un IBM 7094: il CTSS (Compa-ble Time Sharing System)
• Fu in realtà il MULTICS la vera rivoluzione. Venne sviluppato congiuntamente dal MIT, dalla General Electric e dai Bell Labs, ed era in grado di supportare cen-naia di uten- in -mesharing
• La realizzazione fu però molto più complessa del previsto, tanto che i Bell Labs abbandonarono il proge@o
• Tu@avia Mul-cs introdusse molte nuove idee che influenzarono non poco i successivi Sistemi Opera-vi
4
UNIX • UNIX fu proge@ato a par-re dal 1969 da un gruppo di ricercatori
della AT&T presso i Bell Labs, tra cui erano presen- Ken Thompson (che lavorò anche al proge@o Mul-cs), Dennis Ritchie e Douglas McIlroy
• Esso prese notevole spunto dal padre Mul-cs, e grazie all'ohmo lavoro di queste persone divenne un sistema molto interahvo, affidabile e ricco di funzionalità
• Vennero sviluppate anche molte varian- di UNIX, come il System V, BSD (Berkley Sozware Distribu-on), Minix (usato in ambito didahco) e successivamente (sulla base di MINIX e UNIX) l'ormai famosissimo Linux sviluppato dallo studente finlandese Linus Torvalds.
I Personal Computer (1) • Negli gli anni '80 grazie alla tecnologia LSI (large scale
integra-on) la costruzione di chip integra- divenne massiccia e portò all'abbahmento dei prezzi dell'hardware, facendo sorgere l'era del Personal Computer
• Queste macchine erano piccole, economiche ed avevano prestazioni simili a quelle dei calcolatori medio-‐grandi di 10-‐20 anni prima
• La diffusione commerciale del computer ha dato impulso notevole allo sviluppo di interfacce “friendly”, che siano di facile u-lizzo anche per chi non sia un esperto del se@ore.
I Personal Computer (2)
• I primi modelli erano dota- di Sistemi Opera-vi monoutente con accesso interahvo e supporto al -mesharing
• Il più importante tra i primi Sistemi Opera-vi per Personal computer era il CP/M-‐80 della Digital Research per le CPU 8080 / 8085 / Z-‐80. Era basato sui Sistemi Opera-vi della Digital Equipment Corpora-on specialmente quelli per l'archite@ura PDP-‐1
• MS-‐DOS (o PC-‐DOS quando fornito da IBM) era originariamente basato proprio sul CP/M-‐80
Microsoz vs Apple (1) • Steve Jobs era uno dei pochi che credeva nell'idea del Personal
Computer • All'epoca era difficile immaginare cosa potesse farsene una
persona di un computer in casa. Egli invece con-nuò per la sua strada fondando Apple Computer Inc. nel 1976 assieme a Steve Wozniak e Ronald Wayne
• Jobs era convinto che il futuro del Personal Computer sarebbe stato legato all'interfaccia grafica. E così, ispirandosi a quella sviluppata da Xerox qualche anno prima (da Doug Engelbart), Apple lanciò nel 1983 Lisa OS il primo sistema opera-vo per Personal Computer con interfaccia grafica e padre di MAC OS (1984) per Macintosh
Microsoz vs Apple (2)
• La GUI (Graphical User Interface) fu una rivoluzione tanto che di lì a poco Microsoz avrebbe commercializzato Windows (1985) e sarebbe nato l'X Window System in ambiente Unix (1984).
• All'inizio Windows non era definibile Sistema Opera-vo: era piu@osto un'estensione di MS-‐DOS. Fu con il rilascio di Windows 3.0, nel 1990, che Microsoz si impose sul mercato.
• A par-re da Windows 3.1 fu introdo@o il supporto alla mul-medialità, mentre con l'introduzione di Windows 95 si passò defini-vamente dal calcolo a 16 bit a quello a 32 bit.
I Sistemi Opera-vi di rete (1) • Un fenomeno interessante che iniziò a prendere piede da
metà degli anni '80 fu lo sviluppo delle re- di calcolatori, fenomeno che ha poi portato all'incredibile crescita di Internet
• Nacquero così i Sistemi Opera/vi di rete e i Sistemi Opera/vi distribui/
• I primi altro non sono che normali Sistemi Opera-vi ai quali vengono aggiun- i sozware per il collegamento a macchine remote e quindi alle rela-ve risorse condivise come file e stampan-
• I secondi sono Sistemi Opera-vi che girano su sistemi a più processori oppure che inviano i processi da elaborare ad altri computer della rete
5
I Sistemi Opera-vi di rete (2)
• I Sistemi Opera-vi distribui- sono dota- di par-colari poli-che di scheduling che perme@ono una efficace allocazione dei processi tra le CPU disponibili. Inoltre anche il sistema di archiviazione (file system) è unico, anche se in realtà è distribuito tra vari nodi della rete
• Esempi di sistemi di rete sono tu@e le versioni di Windows dalla NT 3.1 in poi, mentre UNIX e deriva- fanno parte di entrambe le categorie in quanto supportano entrambe le tecnologie
Mac OS X
Windows 8 Ubuntu 12.10
iOS 7 Android 4.3 Jelly Bean