Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali Indice • • • • • Architettura Gestione dei processi Gestione della memoria centrale Driver Gestione dei file Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 2 Il sistema operativo • E’ uno strato software che opera direttamente sull’hardware • Isola gli utenti dai dettagli dell’hardware • Mono-utente o multi-utente • E’ organizzato a strati: – Architettura a buccia di cipolla – Ogni strato costituisce una macchina virtuale Programmi utente Interprete comandi attivazione programmi d’utente o di sistema File system controllo e gestione degli accessi a file Gestione delle periferiche gestione di ingresso/uscita da periferica Gestione della memoria allocazione e gestione della memoria Gestione dei processi (nucleo) gestione dei processi e delle interruzioni Kernel Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone Macchina fisica 3 Funzioni del sistema operativo • Il gestore dei processi (o nucleo) è responsabile dell’esecuzione dei programmi da parte dell’unità di elaborazione • Il gestore della memoria ha la funzione di allocare la memoria e partizionarla tra i vari programmi • I driver sono responsabili delle operazioni di ingresso/uscita che coinvolgono le periferiche • Il file system è responsabile della gestione dei file in memoria di massa • L’interprete comandi consente all’utente di attivare i programmi Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 4 Gestione dei processi Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 5 Definizione di processo • Il termine processo fa riferimento all’esecuzione di un programma • Un processo P è una coppia di elementi (E, S), che comprende il codice eseguibile E del programma e lo stato S del processo • Lo stesso programma può essere associato a più processi: – Un programma può essere scomposto in varie parti e ognuna di esse può essere associata ad un diverso processo – Lo stesso programma può essere associato a diversi processi quando diverse copie del medesimo processo sono mandate in esecuzione Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 6 Stati di un processo (1) • L’unità di elaborazione che esegue i processi prende nome di processore. In generale vi saranno n processori • I processi possono essere classificati come: – In esecuzione – Pronti – In attesa • Ipotesi semplificative: – Un programma sia associato a un solo processo – Il sistema sia dotato di un unico processore • Uno solo dei processi può essere in esecuzione in un certo istante, gli altri processi saranno pronti oppure in attesa Il Sistema Operativo Copyright © 2004 - The McGraw-Hill Companies, srl Informatica A – V. Perrone 7 Stati di un processo (2) Inizio esecuzione - Fine quanto di tempo Processo • In esecuzione: - Interruzione esterna pronto assegnato al processore ed Primo processo eseguito da esso pronto • Pronto: può andare in Processo in Evento esterno esecuzione, se il esecuzione atteso gestore dei processi lo decide Interruzione interna • In attesa: attende il Processo in verificarsi di un evento attesa - Fine esecuzione esterno per andare in- Abort per errore stato di pronto Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 8 Stati di un processo (3) • I processi appena creati sono messi in stato di pronto • Il nucleo decide quale processo pronto mettere in stato di esecuzione • Il nucleo assegna il processore a un processo per un quanto di tempo – Coda dei processi pronti – Round-robin – Priorità dei processi Copyright © 2004 - The McGraw-Hill Companies, srl Inizio esecuzione P1 P2 Processo pronto - Fine quanto di tempo - Interruzione esterna Primo processo pronto Processo in esecuzione Evento esterno atteso Interruzione interna - Fine esecuzione - Abort per errore Il Sistema Operativo Informatica A – V. Perrone Processo in attesa 9 Stati di un processo (4) Inizio esecuzione • Il processo in esecuzione passa in stato di attesa se richiede operazioni di I/O (interruzione interna) • Corrisponde alla esecuzione dell’istruzione “chiamata a supervisore” (SuperVisor Call, SVC) - Fine quanto di tempo - Interruzione esterna P1 Processo in esecuzione Primo processo pronto Evento esterno atteso Interruzione interna - Fine esecuzione - Abort per errore Copyright © 2004 - The McGraw-Hill Companies, srl P2 Processo pronto Il Sistema Operativo Informatica A – V. Perrone Processo in attesa 10 Stati di un processo (5) Inizio esecuzione • Cambiamento di contesto: – Salvare il contesto di P1 nel suo descrittore di processo • Il processore è ora libero, un altro processo passerà in esecuzione - Fine quanto di tempo - Interruzione esterna Primo processo pronto Processo in esecuzione Interruzione interna - Fine esecuzione - Abort per errore Copyright © 2004 - The McGraw-Hill Companies, srl P2 Processo pronto Il Sistema Operativo Informatica A – V. Perrone Evento esterno atteso P1 Processo in attesa 11 Stati di un processo (6) • Quando l’operazione di Inizio esecuzione I/O è finita viene generata - Fine quanto di tempo Processo un’interruzione esterna - Interruzione esterna pronto • Il processo in esecuzione viene Primo processo interrotto pronto P2 • Il nucleo esegue il Processo in Evento esterno gestore delle esecuzione atteso interruzioni che esegue le azioni opportune Interruzione interna P1 • P1 può tornare pronto Processo in • Il nucleo sceglie quale attesa Fine esecuzione processo mandare in - Abort per errore esecuzione 12 Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone Stati di un processo (7) Inizio esecuzione • Pre-emption: quando il quanto di tempo è scaduto, il nucleo interrompe il processo in esecuzione P2 Processo pronto - Fine quanto di tempo - Interruzione esterna • Si cerca di garantire un uso equo della CPU a tutti i processi Primo processo pronto P1 Processo in esecuzione Evento esterno atteso Interruzione interna - Fine esecuzione - Abort per errore Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone Processo in attesa 13 Sincronizzazione • A volte, i processi devono sincronizzarsi, ovvero coordinare le loro attività • Il coordinamento sequenziale: un processo termina invocando l’attivazione di un altro processo • La competizione: due processi vogliono accedere simultaneamente a una medesima risorsa (risorsa critica) Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 14 Gestione della memoria centrale Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 15 Rilocazione e paginazione • La gestione concorrente di molti processi, comporta la presenza di molti programmi in memoria centrale • Per allocare i programmi in memoria è necessario rilocarli (trasformare gli indirizzi logici, presenti nei programmi, in indirizzi fisici) • Paginazione: – La memoria centrale è considerata dal gestore della memoria come partizionata in pagine – Ciascuna di queste è un’area di memoria contigua, di dimensione fissata – Dati e programmi vengono partizionati in pagine e allocati in un numero intero di pagine, non necessariamente contigue Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 16 Segmentazione • Segmentazione: – Durante la compilazione, il programma è frazionato in parti che svolgono differenti funzioni • Per es. si possono separare i dati dalle istruzioni – E’ una partizione logica del programma. – Consente al gestore della memoria di caricare i segmenti che compongono il programma stesso in maniera indipendente – Mentre le pagine hanno lunghezza fissa, i segmenti, hanno lunghezza variabile • La segmentazione e la paginazione non sono tecniche alternative. Spesso sono applicate contemporaneamente Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 17 La memoria virtuale • In entrambi i casi, il gestore della memoria offre al programma applicativo la visione di una memoria virtuale • La memoria virtuale è maggiore di quella fisica: – E’ possibile allocare più pagine o segmenti di quelle che possono stare nella memoria fisica allo stesso tempo – Le pagine o i segmenti che non sono al momento caricate nella memoria fisica rimango disponibili nella memoria di massa • La gestione della memoria è coordinata con la gestione dei processi: – Quando un processo è eseguito, le pagine o i segmenti che sono al momento in esecuzione o che contengono i dati attualmente indirizzati devono essere caricati in memoria – Se una pagina o un segmento necessario al programma non è presente, il processo deve essere sospeso per consentire il caricamento 18 Il Sistema Operativo Copyright © 2004 - The McGraw-Hill Companies, srl Informatica A – V. Perrone La catena di programmazione (1) • Il compilatore trasforma un modulo di programma sorgente in un modulo di programma oggetto – Un programma può essere suddiviso in parti (moduli) – I nomi delle variabili locali al modulo di programma vengono tradotti in indirizzi rilocabili (espressi in forma logica) – I riferimenti alle variabili esterne al modulo, restano in formato simbolico • Il linker trasforma diversi moduli oggetto in un unico programma eseguibile – Il linker risolve i riferimenti a variabili definite esternamente a ciascun modulo, trasformando i residui indirizzi simbolici in indirizzi rilocabili Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 19 La catena di programmazione (2) • A volte (raramente) gli indirizzi sono espressi in formato assoluto (calcolati a partire da una specifica cella di memoria) • Il loader carica il programma eseguibile in memoria – Indirizzi assoluti: il loader caricare il programma nella specifica zona di memoria – Indirizzi rilocabili: il loader è responsabile della loro rilocazione Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 20 La rilocazione • Rilocazione statica: – All’atto del caricamento in memoria – Trasforma il codice: indirizzi rilocabili indirizzi assoluti • Rilocazione dinamica: Registro base – Non comporta una conversione del codice – Richiede l’utilizzo di due registri speciali: • Il registro base contiene il valore dell’indirizzo della prima cella di memoria a partire dalla quale il programma è stato caricato • Il registro dimensione contenente la dimensione del programma; permette di verificare che l’indirizzo generato dal programma rientri nello spazio indirizzabile Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone + Indirizzo calcolato Indirizzo rilocabile 21 Modo S e modo U • La memoria è suddivisa in: – Memoria di modo S (supervisore): contiene i programmi di sistema operativo e vengono create le strutture dati da esso utilizzate – Memoria di modo U (utente): contiene i programmi utente • Se il processore sta eseguendo un processo utente : – Lo si dice attivo in modo utente (in modo U) – Può accedere soltanto alla memoria di modo U • Se il processore sta eseguendo un processo di sistema: – – – – E’ attivo il nucleo Si dice attivo in modo supervisore (in modo S) Può accedere alla memoria di modo S e di modo U Può eseguire istruzioni “privilegiate” Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 22 Driver Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 23 I driver • Sono meccanismi software cui è affidato il compito di comunicare dati da e verso le periferiche • Garantiscono ai programmi che li usano una visione di alto livello – E’ possibile leggere o scrivere tramite primitive indipendenti dalla struttura hardware delle periferiche • Si distingue fra: – Driver fisici (hardware). Vengono attivati direttamente dal gestore delle interruzioni – Driver logici (software). Fanno parte del sistema operativo e forniscono una gerarchia di operazioni, con un’organizzazione a strati Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 24 Gestione dei file Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 25 Il file system • Consente di gestire i file sulla memoria di massa: – Creare un file – Dargli un nome – Collocarlo in un opportuno spazio nella memoria di massa – Accedervi in lettura e scrittura • Gestione dei file indipendente dalle caratteristiche fisiche della memoria di massa • I file vengono inclusi all’interno di directory (o cataloghi): – Hanno una tipica organizzazione ad albero – Alcuni sistemi operativi permettono una struttura a grafo Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 26 La struttura ad albero Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 27 Organizzazione dei file • A ciascun utente è normalmente associata una directory specifica, detta home directory • Il livello di protezione di un file indica quali operazioni possono essere eseguite da ciascun utente • Ciascun file ha un pathname (o nome completo) che include l’intero cammino dalla radice dell’albero • Il contesto di un utente all’interno del file system è la directory in cui correntemente si trova Copyright © 2004 - The McGraw-Hill Companies, srl Il Sistema Operativo Informatica A – V. Perrone 28