Sistemi Operativi Bruschi Martignoni Monga Sistemi Operativi1 Concetti generali Evoluzione dei sistemi operativi Mattia Monga I generazione II generazione III generazione IV generazione Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia [email protected] a.a. 2008/09 1 c 2009 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia License. http://creativecommons.org/licenses/by-sa/2.5/it/. Immagini tratte da [2] e da Wikipedia. 1 Sistemi Operativi Bruschi Martignoni Monga Concetti generali Evoluzione dei sistemi operativi Lezione I: Introduzione I generazione II generazione III generazione IV generazione 2 Informazioni sul corso Sistemi Operativi Bruschi Martignoni Monga 4+4 ore di lezione settimanali (12 crediti) Lezioni di teoria e in laboratorio Esame: Concetti generali Evoluzione dei sistemi operativi Scritto con domande a risposta multipla + orale Prova pratica per la parte di laboratorio Sono previste 2 prove intermedie I generazione II generazione III generazione IV generazione Libro di testo per la parte di teoria: Operating System Design and Implementation, di Tanenbaum e Woodhull, III ed.[2] http://homes.dico.unimi.it/sisop/ 3 Il sistema operativo Sistemi Operativi Bruschi Martignoni Monga Concetti generali Cos’è un sistema operativo Un insieme di programmi che: Evoluzione dei sistemi operativi Gestisce in modo ottimale le risorse di un calcolatore; I generazione II generazione III generazione IV generazione Facilita a programmatori ed utenti finali l’uso della sottostante macchina hardware 4 The onion model Sistemi Operativi Bruschi Martignoni Monga Concetti generali Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione 5 Kernel/User mode Sistemi Operativi Bruschi Martignoni Monga Il s.o. è l’unico programma che esegue con il totale controllo delle risorse hardware (kernel mode). Concetti generali Evoluzione dei sistemi operativi Gli altri programmi si appoggiano unicamente sui servizi del s.o. e la loro esecuzione è gestita e controllata dal s.o. (user mode) I generazione II generazione III generazione IV generazione In molti processori questa separazione è imposta via hardware 6 Software di base Sistemi Operativi Bruschi Martignoni Monga Con software di base si indica il sw che: Abilita l’uso del computer e delle sue componenti ad un utente Concetti generali Gestisce le risorse del sistema Evoluzione dei sistemi operativi Facilita l’uso delle stesse ai programmatori di applicazioni I generazione II generazione III generazione IV generazione Fanno parte del sw di base: Sistema operativo Compilatori e interpreti DBMS Sistemi operativi di rete 7 Software applicativo Sistemi Operativi Bruschi Martignoni Monga Con software applicativo si indica il sw che: Soddisfa le specifiche esigenze degli utenti finali (utilizzatori) in merito all’uso del calcolatore nelle loro attività Concetti generali Evoluzione dei sistemi operativi Fanno parte del sw applicativo: I generazione II generazione III generazione IV generazione Video-scrittura, Foglio elettronico Contabilità, Fatturazione WWW, Posta elettronica, News ... 8 Unità di misura Sistemi Operativi exp 10−3 10−6 10−9 10−12 10−15 10−18 10−21 10−24 prefisso milli (m) micro (µ) nano (n) pico (p) femto (f) atto (a) zepto (z) yocto (y) exp 103 106 109 1012 1015 1018 1021 1024 prefisso kilo (K) mega (M) giga (G) tera (T) peta (P) exa (E) zetta (Z) yotta (Y) exp 210 220 230 240 250 260 – – prefisso kibi (Ki) mebi (Mi) gibi (Gi) tebi (Ti) pebi (Pi) exbi (Ei) – – Bruschi Martignoni Monga Concetti generali Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione bit (b) binary digit; byte (B) un insieme di bit adiacenti (generalmente otto) octet (o) otto bit 9 Definizioni preliminari Sistemi Operativi Tempo di turnaround : intervallo di tempo che intercorre tra l’istante di tempo in cui si sottopone un processo (job) al sistema e l’istante di tempo in cui termina l’esecuzione del job (wall clock time) Tempo di esecuzione : quantità di tempo utilizzata dalla CPU per eseguire un determinato job Input time : tempo impiegato per immettere i dati di input Output time : tempo impiegato per emettere l’output (non calcolarlo!) Utilizzo CPU in un intervallo di tempo T : tempo di esecuzione T Troughput in un intervallo T : numero di job eseguiti in T 10 Bruschi Martignoni Monga Concetti generali Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione Tempi tipici Sistemi Operativi Bruschi Martignoni Monga Concetti generali Risorse usate da un’applicazione tipica Input time manuale: 15 min Evoluzione dei sistemi operativi Input time automatico: 0.3 min I generazione II generazione III generazione IV generazione Output time: 0.5 min Execution time: 1 min 11 Generazioni Sistemi Operativi Bruschi Martignoni Monga Generazione 1 (1945-55) : Valvole, modello open shop, applicazioni scientifiche Concetti generali Generazione 2 (1955-65) : Transistor, sistemi batch, applicazioni scientifiche e prime applicazioni commerciali Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione Generazione 3 (1965-80) : ICs, sistemi multiprogrammati e timesharing, applicazioni commerciali Generazione 4 (1980-Present) : VLSI, applicazioni personali 12 Modello open shop Sistemi Operativi Bruschi Martignoni Monga Gli utenti accedevano a turno al calcolatore dove caricavano ed eseguivano i loro programmi. Sistema poco efficiente Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione Un utente ogni 20 min circa Utilizzo CPU 1/20 = 5% Concetti generali (v. tempi tipici) 13 I generazione Sistemi Operativi In questo caso la memoria del calcolatore era completamente a disposizione dell’utente finale ed appariva in questo modo: Bruschi Martignoni Monga Concetti generali Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione 14 II generazione Sistemi Operativi Bruschi Martignoni Monga Un primo miglioramento derivò dall’eliminazione dei tempi di input di dati e programmi con l’introduzione delle schede perforate Concetti generali Evoluzione dei sistemi operativi L’utente preparava off-line il suo programma su schede perforate I generazione II generazione III generazione IV generazione Accedeva al calcolatore a cui faceva leggere le schede il programma veniva eseguito ed i risultati stampati 15 Schede perforate Sistemi Operativi Bruschi Martignoni Monga Concetti generali Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione 16 Profilo temporale Sistemi Operativi Bruschi Martignoni Monga Il profilo temporale dell’esecuzione dei programmi era quindi: I1 E1 O1 I2 E2 O2 I3 E3 O3 I4 E4 O4 Concetti generali Evoluzione dei sistemi operativi In questo caso, se consideriamo il profilo di un’applicazione standard, il troughput del sistema diventa 33 job/h con un uso della CPU = 33/60 = 55% (v. tempi tipici) 17 I generazione II generazione III generazione IV generazione Esigenza del s.o. Sistemi Operativi Bruschi Martignoni Monga L’avvento dei lettori di schede incominciò a richiedere la presenza in memoria centrale di un programma che fosse in grado di: Concetti generali Evoluzione dei sistemi operativi Gestire l’unità periferica (CR) Leggere le schede I generazione II generazione III generazione IV generazione Interpretare ed eseguire i comandi richiesti (Job Control Language) Copiare il contenuto delle schede in memoria A lettura ultimata “lanciare” l’esecuzione del programma 18 Memoria Sistemi Operativi La memoria risultava occupata in questo modo Bruschi Martignoni Monga Concetti generali Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione 19 Batch Sistemi Operativi Bruschi Martignoni Monga Nasce l’esigenza di ottimizzare l’uso dei sistemi di calcolo e di eliminare dal “ciclo produttivo” le unità di I/O Concetti generali Le unità di I/O che fino a quel momento erano state collegate ai calcolatori, (card reader e stampanti) vengono sostituite da unità a nastri molto piú veloci Si modifica completamente lo schema di accesso ad un calcolatore 20 Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione Batch Sistemi Operativi Bruschi Martignoni Monga Concetti generali Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione 21 Profilo temporale Sistemi Operativi Il profilo temporale dell’esecuzione dei programmi era quindi: I1 I2 I3 I4 E1 E2 E3 E4 O1 O2 O3 O4 Bruschi Martignoni Monga Concetti generali In questo caso il troughput del sistema era di 55 job/h con un uso della CPU = 55/60 = 91% (v. tempi tipici) La CPU veniva utilizzata al meglio ma . . . Il tempo di turnaround era diventato estremamente elevato L’utente doveva attendere la fine del batch per poter accedere ai risultati della propria elaborazione Nella maggioranza dei casi il tempo di turnaround si aggirava intorno alle 24 ore 22 Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione Ulteriori problemi Sistemi Operativi Un ulteriore elemento di criticità presente nei sistemi batch era costituito dal cambiamento delle applicazioni tipo Sino alla fine degli anni ’50 il calcolatore era usato principalmente per computazioni di tipo scientifico che richiedevano quindi un uso intensivo della CPU (CPU bound) Bruschi Martignoni Monga Concetti generali Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione Dalla fine degli anni ’50 il calcolatore incominci ad essere utilizzato in applicazioni commerciali, caratterizzate da un forte uso di I/O (I/O bound) 23 Profilo batch (2) Sistemi Operativi Bruschi Martignoni Monga Concetti generali Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione 24 III generazione Sistemi Operativi Bruschi Martignoni Monga Concetti generali Applicazioni tipicamente commerciali o molto interattive Evoluzione dei sistemi operativi Nascono come risposta al problema di un miglior sfruttamento della CPU I generazione II generazione III generazione IV generazione S.O. di riferimento: IBM OS/360 25 Multiprogrammazione Sistemi Operativi Bruschi Martignoni Monga I sistemi multiprogrammati godono delle seguenti caratteristiche: Concetti generali Evoluzione dei sistemi operativi Consentono la coesistenza contemporanea in memoria centrale di due o piú programmi I generazione II generazione III generazione IV generazione Adottano meccanismi che consentono di svincolare l’attività della CPU da quella delle periferiche di I/O Ottimizzano l’uso della CPU 26 Memoria multiprogrammata Sistemi Operativi Bruschi Martignoni Monga Concetti generali Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione 27 Multiprogrammazione Sistemi Operativi Bruschi Martignoni Monga Principio di funzionamento: Concetti generali Viene scelto un programma P1 da eseguire, tra quelli presenti in memoria Evoluzione dei sistemi operativi Quando P1 richiede lo svolgimento di un’operazione di I/O, la stessa viene demandata alla periferica, il programma P1 viene momentaneamente sospeso, sarà ripreso successivamente I generazione II generazione III generazione IV generazione La CPU procede nell’esecuzione di un altro programma 28 Multiprogrammazione Sistemi Operativi Bruschi Martignoni Monga Concetti generali Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione 29 Multiprogrammazione Sistemi Operativi Bruschi Martignoni Monga Concetti generali Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione 29 Interrupt Sistemi Operativi Bruschi Martignoni Monga Per realizzare questa modalità diventano fondamentali i segnali di interrupt Concetti generali Evoluzione dei sistemi operativi Interrupt È un segnale elettrico inviato da un dispositivo esterno al microprocessore, piú precisamente all’interrupt controller L’interrupt permette al processore di interrompere le attività in corso e di eseguirne altre 30 I generazione II generazione III generazione IV generazione Multiprogrammazione Sistemi Operativi Bruschi Martignoni Monga Affinché lo schema funzioni, è necessario disporre di: Routine di gestione degli interrupt Concetti generali Moduli per la gestione dei programmi sospesi e di quelli pronti all’esecuzione Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione Moduli per la gestione delle periferiche piú processi possono richiedere l’uso della stessa risorsa Moduli per la gestione della memoria Tutte queste funzionalità sono accorpate nel sistema operativo 31 Multiprogrammazione Sistemi Operativi Bruschi Martignoni Monga Concetti generali Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione 32 Time sharing Sistemi Operativi Bruschi Martignoni Monga Sistemi altamente interattivi Ogni utente lavora interattivamente e riceve periodicamente attenzione dal calcolatore Concetti generali Evoluzione dei sistemi operativi L’impressione che ne ottiene è di avere a disposizione un sistema dedicato I generazione II generazione III generazione IV generazione Un sistema time-sharing non deve necessariamente essere multiprogrammato (in ogni time slice un solo programma utente è caricato in memoria) CTS5 Multics Unix 33 Confronto Sistemi Operativi Bruschi Martignoni Monga Concetti generali Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione 34 Real time Sistemi Operativi Bruschi Martignoni Monga Sistemi che devono garantire l’esecuzione di certe operazioni entro limiti di tempo prefissato Concetti generali La nozione di real-time legata all’ambito applicativo Sistemi hard real-time i vincoli di tempo non possono essere violati pena gravi danni al sistema e all’ambiente Sistemi soft real-time il mancato rispetto dei vincoli di tempo porta ad un degrado delle prestazioni del sistema 35 Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione IV generazione Sistemi Operativi Bruschi Martignoni Monga Sistemi operativi piú facili da utilizzare Concetti generali Installabili da utenti poco esperti Utilizzabili da ogni classe di utente Evoluzione dei sistemi operativi Nasce la nozione di sistema user-friendly I generazione II generazione III generazione IV generazione Molta enfasi viene posta sulle interfacce utente, grazie soprattutto al lavoro della Xerox (e poi Apple) che introduce le interfacce a finestre 36 IV generazione Sistemi Operativi Bruschi Martignoni Monga I principali sistemi operativi di IV generazione sono: UNIX Concetti generali molto diffuso su workstation nelle varie versioni: HP-UX, SOLARIS, AIX, ULTRIX in ambiente PC: Linux, FreeBSD, OpendBSD in ambiente Apple: MacOs X Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione MS-DOS W95 WNT W2000 XP VISTA Nato per PC IBM e compatibili, che usavano il processore Intel 8088 Con WNT Microsoft ha iniziato ad operare sul mercato delle WKS 37 IV generazione Sistemi Operativi Bruschi Martignoni Monga Concetti generali I sistemi operativi di IV generazione hanno dovuto fare i conti, per primi, con una nuova risorsa: la rete A partire dalla metà degli anni ’70, lo sviluppo di protocolli per reti locali prima e per reti geografiche immediatamente dopo ha favorito lo sviluppo delle reti di calcolatori 38 Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione Rete Sistemi Operativi Bruschi Martignoni Monga Per poter operare in una rete, un calcolatore deve essere predisposto del necessario Concetti generali Evoluzione dei sistemi operativi HW: cavi e schede di rete SW: protocolli per la comunicazione con gli altri host collegati in rete. I protocolli piú diffusi: I generazione II generazione III generazione IV generazione Ethernet TCP-UDP/IP 39 Il futuro Sistemi Operativi Bruschi Martignoni Monga Si assiste ad una continua evoluzione verso l’usabilità del sistema, che richiede interfacce sempre piú intuitive Concetti generali Vi è una continua evoluzione di unità periferiche e sistemi di interconnessione (bluetooth, wi.fi, digital camera, biometric device) che il sistema operativo deve essere in grado di inglobare e gestire La complessità del s.o. cresce 40 Evoluzione dei sistemi operativi I generazione II generazione III generazione IV generazione