3/16/10 So1ware: di sistema e applica.vo • Di sistema: controlla il comportamento del sistema stesso – il più importante dei so2ware di sistema è il sistema opera5vo: Il Sistema Opera.vo • controlla le risorse del sistema • fornisce la base su cui costruire tu: gli altri programmi • Applica.vo: risolve i problemi dell’utente, appoggiandosi sullo strato fornito dal sistema opera5vo 2 Il sistema opera.vo • Con il termine sistema opera+vo si intende l’insieme di programmi e librerie che opera direAamente sulla macchina fisica... – … mascherandone le caraAeris5che specifiche... – … e fornendo agli uten5 un insieme di funzionalità di alto livello Esempi di Sistemi Opera.vi • MS‐DOS • MS‐Windows (95, 98, 2000, XP, Vista, 7) • Unix – Commerciali: Sun Solaris, IBM AIX, HP‐UX,… – Linux – BSD • Mac OS – Mac OS X • Altri (IBM AS/400, Symbian,…) 3 Archite:ura di un S.O. (1/2) 4 Archite:ura di un S.O. (2/2) • Un moderno S.O. è organizzato secondo una architeAura “a stra+” (a cipolla) • Ogni strato implementa una macchina virtuale più potente del precedente Programmi utente Interfacce utente Interprete dei comandi Gestore del file system – Appoggiandosi alle funzionalità offerte dallo strato precedente • Tale approccio permeAe una chiara separazione tra interfaccia e implementazione delle diverse funzionalità • Ogni strato è cos5tuito da un insieme di programmi e librerie – I meccanismi di chiamate tra livelli possono essere diversi • chiamate a soAoprogrammi • interruzioni sincrone o asincrone • invio di messaggi a processi 5 Interfaccia grafica Gestore delle periferiche Gestori di risorse (kernel) Gestore della memoria Gestore dei processi (nucleo) Macchina fisica 6 1 3/16/10 Il Nucleo (KERNEL) (1/2) • Si appoggia direAamente sulla macchina fisica Il Nucleo (KERNEL) (1/2) • La macchina virtuale realizzata dal nucleo • EffeAua la ges5one dei processi Processore virtuale • In un sistema mul5tasking realizza una macchina virtuale in cui ad ogni processo è assegnata un processore virtuale Processore virtuale • Comprende i principali programmi di risposta ad interruzione Bus di sistema • Realizza le primi5ve di sincronizzazione e scambio messaggi tra processi Disco 7 Il gestore della memoria (1/2) • Realizza le funzionalità di allocazione della memoria • La macchina virtuale realizzata dal gestore della memoria Memoria virtuale Memoria virtuale ... Memoria virtuale Processore virtuale Processore virtuale ... Processore virtuale Bus di sistema – Garantendo la protezione delle diverse zone di memoria • Offre ad ogni processo la visibilità di un insieme di periferiche virtuali dedicate • Ges5sce, almeno in parte, i malfunzionamen5 delle periferiche 11 Interfaccia delle periferiche Disco 9 • Fornisce agli stra5 superiori un insieme di procedure di alto livello per l’accesso alle diverse periferiche Interfaccia delle periferiche Memoria centrale Il gestore della memoria (2/2) • Par5ziona la memoria tra i vari processi che la richiedono • Maschera le caraAeris5che fisiche delle periferiche Processore virtuale 8 – Supera i limi5 della memoria fisica e mostra ai processi uno spazio di memoria virtuale Il gestore delle periferiche (1/2) ... 10 Il gestore delle periferiche (2/2) • La macchina virtuale realizzata dal gestore delle periferiche Memoria virtuale Interfaccia periferiche virtuali Memoria virtuale ... Bus Processore virtuale Interfaccia periferiche virtuali Bus Processore virtuale Bus di sistema Disco 12 2 3/16/10 Il gestore del file system (1/7) • E’ responsabile della ges5one delle periferiche di massa – Hard disk – CD / DVD – Memory s5ck USB – ... Il gestore del file system (2/7) • Le funzioni di base che sono supportate da un file system sono – Il recupero di da5 precedentemente memorizza5 – L’eliminazione di da5 obsole5 – La modifica/aggiornamento di da5 preesisten5 – La copia di da5 • Fornisce agli stra5 superiori un insieme di procedure per l’accesso al file system • Tra suppor5 di memorizzazione diversi (es. da HD a CD) • In cartelle diverse nello stesso supporto • Garan5sce la protezione nell’accesso ai file 13 14 Il gestore del file system (3/7) • I da5 contenu5 nella memoria di massa vengono struAura5 e ges55 mediante una organizzazione in file Il gestore del file system (4/7) • L’estensione è spesso associata al programma che ha generato il file e individua pertanto la 5pologia del contenuto del file – – – – – – • Un file è un contenitore logico iden5ficato da un nome (filename) • I filename generalmente sono compos5 da due par5 – ad es. curriculum_vitae.doc – Il filename vero e proprio (curriculum_vitae) – L’estensione (doc) .exe file eseguibili .txt file di testo .doc documen5 di testo (MS Word) .wav file audio .bmp immagine in formato bitmap ... • Ad ogni file sono poi associa5 dal sistema opera5vo altri da5 – Data di creazione / modifica – Lunghezza del file (in byte) – Uten5/Gruppi che possono accedere ai file 15 16 Il gestore del file system (5/7) Il gestore del file system (6/7) • I file vengono suddivisi in più contenitori logici, chiama5 directory, cataloghi o cartelle (folders) – Le cartelle sono organizzate secondo una struAura ad albero • Il file system con5ene una directory deAa radice (ROOT) dell’albero che può contenere file o altre cartelle • Ciascun file è individuato univocamente dal suo nome completo o percorso assoluto – Ad es. D:\downloads\temp\002.part • Due file con lo stesso nome in due cartelle dis5nte, ad esempio – D:\Immagini\Compleanno\foto1.jpg – D:\Documen5\foto1.jpg fanno riferimento a due file che in generale possono essere DIVERSI 17 D: Documen5 Downloads Incoming Temp ... ... 18 3 3/16/10 Il gestore del file system (7/7) • La macchina virtuale realizzata dal gestore del file system Memoria virtuale Interfaccia periferiche virtuali File Memoria virtuale ... File Interfaccia periferiche virtuali Processore virtuale • Cos5tuiscono l’interfaccia verso l’utente • Consentono l’interazione dell’utente con il s.o. e con i programmi applica5vi in esecuzione File ... File – PermeAono di accedere ai programmi conserva5 su memoria di massa e mandarli in esecuzione • allocando la memoria necessaria • creando il processo rela5vo ... Bus Bus L’interprete dei comandi e l’interfaccia grafica Processore virtuale Bus di sistema • Nel caso di un sistema mul5utente forniscono ai diversi uten5 la visione di una macchina virtuale dedicata 19 Classificazione dei moderni S.O. • Sistemi monotask: – PermeAono l’esecuzione di un solo programma utente per volta (es. DOS) – Il computer a disposizione del programma dall’inizio alla fine della sua esecuzione – Coda dei job, ges5ta FIFO (first in, first out) e/o con priorità • Sistemi mul5task – PermeAono l’esecuzione di più programmi utente contemporaneamente – Classificazione ulteriore: • Mul5tasking coopera5vo (Windows 3.1, MacOS originario) • Mul5tasking preemp5ve (Windows 95/98/NT, Unix) – Time sharing o meno 20 Svantaggi dei sistemi mono‐tasking • Nessuna interazione utente‐programma durante l’esecuzione di qualche compito • Lentezza: la CPU non può essere usata da nessun processo mentre il programma in esecuzione svolge operazioni di I/O (molto piu’ lente di leAure/scriAure in Memoria) • Esempio: DOS è un SO monotasking; non si può fare niente altro mentre si formaAa un floppy o si memorizzano da5 su disco 21 Mul.tasking (.me sharing) • Ripar5zione del tempo di CPU tra tu: i processi che la vogliono • Ogni job rimane in esecuzione solo per un quanto di tempo, poi l’esecuzione passa al prossimo job e il primo va in aAesa 22 Sta. di un processo Selezione primo processo pronto e sua esecuzione Inizio esecuzione – Esecuzione globale più veloce • Durata del quanto di tempo tra 100 e 200 millisecondi – Granularità molto fine Processi pron. • A ogni utente sembra di avere la CPU tuAa per lui, solo più lenta Processo in esecuzione Termine quanto di tempo Richiesta operazione di I/O Completamento operazione di I/O (evento esterno aAeso) 23 Processo in a:esa 24 4 3/16/10 A:esa • Se il processo richiede operazioni ad altri disposi5vi (es. Operazioni di I/O), la CPU rimarrebbe inu5lizzata – lo scheduler meAe il processo in stato di aAesa, – il dispatcher sceglie un nuovo processo tra i pron5 dalla tabella, – quando l’operazione sarà finita, lo scheduler dichiarerà di nuovo pronto il processo • PermeAe un u5lizzo molto più efficiente delle risorse di elaborazione Bootstrap (1/2) • Come avviene l’avvio del SO? • All’inizio, la CPU ha un indirizzo fissato nel registro contatore di programma, che punta all’indirizzo nella ROM (Read Only Memory) ove inizia il programma di bootstrap che è sempre memorizzato lì • L’esecuzione del programma di bootsrap trasferisce il kernel del Sistema Opera5vo da una parte prestabilita della memoria di massa (hard‐disk, floppy‐disk, CD‐Rom,…) in memoria principale • Quindi l’esecuzione prosegue con un salto all’area di memoria principale contenente il Sistema Opera5vo (che quindi viene mandato in esecuzione) • Tra le prime operazione del kernel del Sistema Opera5vo vi sono 5picamente quelle di caricamento di altri componen5 so2ware: – Esempio: • durante la digitazione di un documento di testo, l’utente compie molte pause per rifleAere sul contenuto che sta scrivendo • questo tempo è usato dal sistema per compiere altre operazioni in contemporanea (ad es. ges5re la ricezione di e‐mail) – driver delle periferiche installate – programmi di sistema lancia5 automa5camente all’avvio 25 26 Bootstrap (2/2) MS‐DOS • Sviluppato dalla Microso2 nel 1981 per il PC IBM • AdoAato da altri con PC IBM‐compa5bili • Molto limitato: – mono‐utente, – mono‐tasking • Circa 50 comandi per il SO: – – – – – – – – DIR per vedere il contenuto di una directory COPY per copiare file DEL per cancellare un file REN per cambiare il nome a un file CD per muoversi in un altra directory MD per creare nuove directory RD per cancellare directory Nome file: per eseguire il file (se eseguibile) – … 27 28 UNIX MS Windows – Elemen. principali • • • • • • • • • • Sistema Opera5vo: Interfaccia grafica Mouse che sposta un cursore Cut & paste (copia e incolla) Drag & drop (trascina e lascia) Icone associate a file, directory, dischi, … Directory come cartelle Pulsan5 Finestre: cornici con strumen5 Menu di comandi Cultura tecnologica del progeAo – mul5‐utente, – mul5‐tasking, con 5me‐sharing • Nato negli anni ’60 con un progeAo congiunto AT&T e MIT • Concepito per poter funzionare su diverse piaAaforme hardware con adaAamen5 limita5 • Interprete dei comandi: shell – testuale – più di 300 comandi, con opzioni • Disponibilità di interfaccia grafica (finestre, mouse, etc.) messa a disposizione da un insieme di moduli separa5 (sistema X Window) 29 30 5 3/16/10 LINUX Gnome Linux • Linux è una delle molte varian5 di Unix con la peculiarità di essere open source (= il cui codice sorgente è liberamente disponibile) • La sua nascita è dovuta in parte alle restrizioni imposte da AT&T all’uso di del codice sorgente di UNIX per la dida:ca: – hanno indoAo Andy Tanenbaum allo sviluppo di MINIX, un implementazione di UNIX per scopi dida:ci – MINIX ha ispirato Linus Torvalds a realizzare una propria implementazione del kernel UNIX – Il kernel sviluppato da Linus è stato combinato con una suite di programmi UNIX, sviluppa5 nell’ambito del progeAo GNU (inizia5va che ha originato il movimento open source), per formare la prima distribuzione di Linux e renderla disponibile su Internet come so2ware open source • Oggi esistono innumerevoli distribuzioni di Linux, dis5nte per diverse combinazioni di kernel, interfacce grafiche (le più note sono Gnome e KDE) e programmi di u5lità. KDE 31 BSD • BSD è un’altra versione open source del sistema opera5vo Unix, in questo caso nata alla University of California, Berkeley (USA) • Ritenuto più stabile di Linux (anche grazie ad un gruppo di sviluppo più ristreAo, quindi più controllabile) ma il numero di applicazioni disponibili è più ristreAo (principalmente applicazioni per i server) • Oggi esistono 4 distribuzioni principali di BSD: – 3 distribuzioni free: FreeBSD, OpenBSD, NetBSD – 1 distribuzione a pagamento, all’interno del Sistema Opera5vo Apple MAC OS‐X 33 32 MAC OS‐X • MAC OS‐X è l’ul5ma generazione di S.O. per i personal computer prodo: da Apple • Abbandonato il precedente sistema opera5vo Apple ha costruito la nuova generazione del proprio S.O. a par5re da una variante di BSD, chiamata Darwin, che rimane open source • A questo nucleo, Apple ha aggiunto componen5 proprietari, dall’interfaccia grafica (Aqua) ad una suite di applicazioni e u5li5es. Archite3ura MAC OS‐X Applicazioni GUI Kernel, gestori di risorse e servizi di base 34 6