Sistemi Operativi Cosa è un sistema operativo Un po’ di storia Il gestore dei Processi Il gestore della Memoria Il File System Sistemi Operativi 1 Il sistema di Elaborazione ... … E’ costituito da Hardware, Programmi di Sistema e Programmi Applicativi Programmi Applicativi Utility di Sistema Interprete dei Comandi Sistema Operativo Linguaggio Macchina Microprogrammazione Dispositivo Fisico Sistemi Operativi 2 Cosa è un Sistema Operativo (S.O.) Le due viste del S.O. Un S.O. ha due funzioni fondamentali, apparentemente scorrelate S.O. come generatore di macchina estesa o virtuale S.O. come gestore delle risorse Sistemi Operativi 3 S.O. come macchina estesa Punto di vista Top Down (Dall’alto verso il basso) ... Sia il programmatore che l’utente preferiscono trattare con una ASTRAZIONE della macchina reale Il S.O. nasconde al programmatore la “verità” sui livelli hardware sottostanti e presenta un sistema semplice di accesso alle funzionalità del sistema nonché un’interfaccia gradevole e amichevole all’utente, maggiori funzionalità, ecc. Sistemi Operativi 4 Il modello a Macchine Virtuali M4 Weidernann 1971 M3 S3 M3 S2’ M2 S2 M1 S1 M0 S0 • Mi rappresenta la macchina • Si lo strato software ad esso sovrapposto Sistemi Operativi 5 Il modello stratificato di un S.O. Programmi Utente Interprete Comandi File system Gestore di I/O Gestore memoria Nucleo Sistemi Operativi 6 S.O. come gestore delle risorse Punto di vista Bottom Up (dal basso verso l’alto) Gestisce tutte le componenti di un sistema complesso ALU Registri HD ROM FD Monitor RAM Controllo Memoria Interfaccia I/O Interfaccia I/O CPU BUS Sistemi Operativi 7 Classificazione dei S.O. MonoTask Mono Utente è collegato un solo utente alla volta MonoTask -> Mono Utente MultiTask è presente un solo processo/programma alla volta sono presenti più processi/programmi alla volta Multi Utente sono collegati più utenti alla volta Sistemi Operativi 8 Classificazione dei S.O. (cont.) MonoTask MultiTask e Mono Utente MS-DOS Win98 MultiTask e Multi Utente WinXP, Unix, Linux Sistemi Operativi 9 Turn Around Time Tta Output Input TI tElaborazione I TO t Tta Tta =TO-TI è il tempo che passa tra l’ingresso dei dati e la produzione dell’output Sistemi Operativi 10 Throughput E’ proporzionale al numero di lavori eseguiti dal sistema nell’unità di tempo T E’ detto anche CARICO del SISTEMA Sistemi Operativi 11 Overhead di Gestione Sovraccarico Gestionale E’ proporzionale al tempo consumato dal S.O. per eseguire il suo compito Sistemi Operativi 12 Un sistema efficiente ... Throughput Elevato TurnAround Time Basso Overhead Gestionale Basso Ma …. Quando il Turnaround è basso? Sistemi Operativi 13 Un po’ di storia Per comprendere le funzionalità di un S.O. è comodo seguirne l’evoluzione storica anni 40 anni 50 anni 60 metà anni 60 a metà anni 70 metà anni 70 ad oggi assenza di S.O. gestione dei lavori a lotti multiprogrammazione Sistemi General Purpose DB, Reti, S.Distribuiti Sistemi Operativi 14 Un semplice schema Memoria CPU Canale OUTPUT Sistemi Operativi Canale INPUT 15 Overlap delle attività e1 CPU Input i1 e2 e3 i3 i2 …. eN …. …. Output o1 o2 overlap THROUGHPUT proporzionale a: i1 max( i k 1, N 1 k 1 , ok ) oN Sistemi Operativi oN …. e k 1, N k 16 Le interruzioni (1) Con l’introduzione dei canali di dati si risolve il problema della sovrapposizione delle operazioni di I/O ma e’ necessario poter sovrapporre le operazioni di calcolo e quelle di I/O. Per far cio’ e’ necessario che l’attivita’ della CPU sia interrompibile a seguito di un evento esterno come, ad es., la fine della stampa di un file. Per risolvere questo problema è stato introdotto il concetto delle interruzioni. Sistemi Operativi 17 Le interruzioni (2) Le interruzioni sono segnali che, arrivando alla CPU, possono interrompere, se abilitate, l’esecuzione del programma in corso ed eseguire un programma particolare detto Interrupt Service Routine (ISR) Tramite l’uso dei canali e degli interrupts e’ possibile: sovrapporre le operazioni di input e di output sovrapporre le operazioni di calcolo e quelle di I/O Per ottenere la sovrapposizione massima tra queste operazioni in memoria si caricano piu’ programmi in modo che, mentre uno e’ impegnato in operazioni di I/O, un altro possa utilizzare la CPU. Sistemi Operativi 18 MultiTask o Multiprogrammazione Possibilita’ di caricare piu’ programmi in memoria in grado di condividere l’uso della CPU e delle risorse dell’elaboratore E’ possibile che il S.O per realizzare la multiprogrammazione non mantenga tutti i programmi in memoria ma li carichi di volta in volta quello piu’ idoneo da un supporto di massa Tale tecnica, detta di “swapping” e’ meno efficiente ma risulta necessaria quando si hanno problemi di dimensione della memoria Sistemi Operativi 19 Sistemi Time Sharing (1) Un processo rimane in running solo per un intervallo fissato di tempo (Time Slice) Per evitare che resti padrone della CPU a tempo indeterminato Il Supervisore riacquista il controllo quando è terminata la time slice il programma termina la sua esecuzione il programma avanza una richiesta di I/O Sistemi Operativi 20 Sistemi Time Sharing (2) fine op. I/O Ready Waiting Fine Time Slice attivazione da parte della CPU (scheduler) Running attesa di op. di I/O È ovvio che un programma per terminare la sua esecuzione avrà bisogno di più time slice • aumenta il turnaorund time dei singoli processi • migliora il throughput complessivo Sistemi Operativi 21 Sistemi Real Time Un sistema Real Time è al servizio di una specifica applicazione E ha severi limiti nei tempi di risposta controllo centrale nucleare controllo caldaia controllo radar ossia la risposta deve essere prodotta in tempi utili per l’ambiente esterno L’overhead deve essere ridotto all’osso Sistemi Operativi 22 Sistemi Real Time(2) fine evento Ready Waiting pre-emption attivazione da parte della CPU (scheduler) Running attesa di evento Con la pre-emption si garantisce che il processo più importante sia quello running • aumenta overhead • ottimizza turnaorund •il throughput non è significativo Sistemi Operativi 23 Il Gestore della Memoria Il compito del Gestore della Memoria è ricordare quali parti della memoria sono attualmente in uso e quali non lo sono di assegnare la memoria ai processi di deallocare la memoria assegnata di amministrare gli scambi tra memoria centrale e disco quando la prima non è più in grado di contenere i processi (swapping) Sistemi Operativi 24 Partizioni Fisse La memoria è divisa in n partizioni di lunghezza diversa Part. 4 Problema: qualsiasi spazio non usato è perso P4 P3 21 P1 Coda di Input Sistemi Operativi Part. 3 Part. 2 Part. 1 Sistema Operativo 25 Partizioni Variabili C C C B B B B A A A S.O. S.O. S.O. S.O. D S.O. C D S.O. L’allocazione cambia a mano a mano che i processi entrano in memoria e poi la lasciano Problema: compattazione e garbage collection Sistemi Operativi 26 Paginazione Lo spazio degli indirizzi viene suddiviso in unità logiche dette pagine alle pagine corrispondono unità di memoria fisica detti frame Alcune pagine sono i memoria centrale, altre su disco se si tenta di accedere ad una pagina non in memoria centrale, viene provocata una eccezione detta page fault. A questo punto il S.O. prende un frame poco usato, la scarica su disco e carica la pagina richiesta dal disco al frame liberato Sistemi Operativi 27 Memory Paging e Mapping Sistemi Operativi 28 Sistemi Operativi 29 File System Crea una corrispondenza tra l’organizzazione logica dei file e la loro struttura fisica corrispondenza tra spazio logico e spazio fisico scambio dei dati tra memoria di massa e memoria fisica gestione dei buffer di sistema allocazione dei blocchi sulla memoria di massa condivisione e protezione dei file pipes o canali virtuali di comunicazioni fra processi. Sistemi Operativi 30 Il File System Dal punto di vista dell’utente il File System è caratterizzato dalle operazioni che ha a disposizione, cioè … come si definisce un file come il file vengono denominati e protetti che operazioni sono permesse sui file e così via Tipizzazione dei file mediante un suffisso (“estensione”). Tipica di Windows. altre tecniche Sistemi Operativi 31 Directory Per tenere traccia dei file, il File system mette a disposizione dell’utente dei directory contenente un certo numero di elementi, uno per file directory Elemento Elemento Elemento Elemento Sistemi Operativi Nome del file tipo del file dimensione del file proprietario protezione tempo di creazione ultima modifica lista dei blocchi usati 32 Albero dei directory E’ molto comune che un utente voglia raggruppare i suoi file in modo logico, attraverso una struttura gerarchica Radice A F1 F2 B C F3 D F2 F1 Sistemi Operativi 33 Memorizzazione dei File Un file è di solito composto da una sequenza di blocchi Il File System deve tenere traccia dei blocchi di ciascun file Negli ambienti Microsoft ad ogni disco è associata una tabella d’allocazione dei file o FAT, contenente un elemento per ogni blocco del disco. Il directory contiene il numero di blocco del primo blocco dei file Sistemi Operativi 34 La FAT X X EOF FREE 2 9 8 FREE 4 11 FREE EOF 0 1 2 3 4 5 6 7 8 9 10 11 File A 6 8 4 File B 5 9 11 2 Directory File A File B ext ext A Riserv. H A Riserv. H Sistemi Operativi D D 6 5 4 3 35 I tipi di FAT FAT Ogni entry è di 16 bits, cioè 65.535 clusters max Ogni cluster è max 32768 bytes, il filesystem ha un limite massimo superiore di 2 Gbytes per la dimensione della partizione. FAT32 Ogni entry è di 32 bits, cioè 4.294.836.225 clusters max Ogni cluster è max 32768 bytes, il filesystem ha un limite massimo superiore di 32 Gbytes per la dimensione della partizione. Sistemi Operativi 36 I tipi di FAT (cont.) Dimensioni dei cluster in base alla grandezza delle partizioni FAT fino a 128MB -> 2KB 128-256MB -> 4KB 256-512MB -> 8KB 512-1024MB -> 16KB 1024-2048MB -> 32KB FAT32 512MB-8GB -> 4KB 8GB-16GB -> 8KB 16GB-32GB -> 16KB 32GB o + -> 32KB Sistemi Operativi 37 Sistemi Operativi 38