Politecnico di Milano Il supporto al sistema operativo Prof. Mariagiovanna Sami sami@elet.polimi.it 2007-
Obiettivi e Funzioni Perché introdurre il sistema operativo? Convenienza Rende più facile usare il calcolatore Efficienza Permette miglior uso delle risorse del calcolatore In una visione a livelli del sistema di calcolo, che cosa dev e essere noto al progettista di ogni livello? Operating System Support 2007-
Livelli e viste del sistema di calcolo Operating System Support 2007-
I servizi offerti dal Sistema Operativo Supporto a: Creazione del programma Esecuzione del programma Accesso ai dispositivi di I/O Accesso controllato ai files Accesso al sistema di elaborazione Identificazione e gestione degli errori Contabilità Operating System Support 2007-
Il S.O. come gestore di Risorse Operating System Support 2007-
Tipi di Sistemi Operativi Interattivo Batch Programma singolo (Uni-programmazione) Multi-programmazione (Multi-tasking) Operating System Support 2007-
Un po di storia Fino alla metà degli anni 50: Non esistono Sistemi Operativi I programmi interagiscono direttamente con lo hardware Problema principale: Lo Scheduling come ordinare la successione dei compiti che il calcolatore deve eseguire. Operating System Support 2007-
I primi sistemi batch batch Programma Monitor residente L utente consegna programmi e dati ( job da eseguire) all operatore L operatore provvede all esecuzione dei job separatamente, uno alla volta dall inizio alla fine ( in blocco batch); Il Monitor controlla la sequenza di eventi necessari per elaborare ogni batch; Quando un job termina, il controllo torna al Monitor che legge il prossimo job; È il Monitor che gestisce l ordinamento delle operazioni. Operating System Support 2007-
Organizzazione della memoria nel caso di monitor residente Operating System Support 2007-
Aspetti hardware desiderabili Protezione della memoria Per proteggere il Monitor Timer Per impedire che un job monopolizzi il sistema Istruzioni privilegiate Eseguibili solo dal Monitor - es.: I/O Interruzioni Consentono di rilasciare e riprendere il controllo Comunque I dispositivi di I/O sono molto lenti Quando un program è in attesa dell I/O, un altro programma può usare la CPU Operating System Support 2007-
Sistemi Batch Multi- programmati Quando un program è in attesa dell I/O, un altro programma può usare la CPU; L utente non ha ancora possibilità di interagire col sistema nel corso dell esecuzione di un programma (ogni programma viene eseguito dall inizio alla fine senza possibilità di interventi) ma oiù programmi condividono le risorse di calcolo. Operating System Support 2007-
Programma singolo: Operating System Support 2007-
Multi-Programmazione con due programmi Operating System Support 2007-
Multi-Programmazione con tre programmi Operating System Support 2007-
Sistemi in Time Sharing Una soluzione più evoluta: time-sharing Consente agli utenti di interagire direttamente col calcolatore Es.: sistemi interattivi La multi-programmazione consente che più utenti interagiscano col calcolatore Operating System Support 2007-
Scheduling (ordinamento dei compiti) Fondamento della multi-programmazione Include una fase a lungo termine, oltre a Fase a medio termine, e A breve termine E infine riguarda l I/O Operating System Support 2007-
Scheduling a lungo termine Determina quali programmi sono presentati per l elaborazione; es., controlla il grado della multi-programmazione Una volta presentato, un job diventa O un processo per lo scheduler a breve termine (v.) (oppure diventa un job swapped out che viene fornito allo scheduler a medio termine) Operating System Support 2007-
Scheduling a medio termine Fa parte della funzione di swapping (v. avanti ) Di norma basato sulla necessità di gestire la multiprogrammazione; Se non si ricorre alla memoria virtuale, riguarda anche la gestione della memoria. Operating System Support 2007-
Scheduling a breve termine Dispatcher Decisioni di fino sul prossimo lavoro da eseguire, cioè stabilire quale dei programmi in attesa otterrà effettivamente il controllo della CPU nel prossimo intervallo di tempo. Operating System Support 2007-
Stato di un processo Operating System Support 2007-
Blocco di controllo di un processo (PCB) Identificatore Stato Priorità Program counter Puntatori alla memoria Dati di contesto Stato dell I/O Informazioni di contabilità Operating System Support 2007-
Diagramma di un PCB Operating System Support 2007-
Elementi fondamentali di un S.O. Operating System Support 2007-
Scheduling dei processi Operating System Support 2007-
Gestione della memoria Uni-programmazione La memoria viene divisa in due parti (in termini logici) Una per il S.O. (monitor) Una per il programma attualmente in esecuzione Multi-programmazione La parte di utente viene ripartita e condivisa fra i processi attivi Operating System Support 2007-
Swapping Problema: l I/O è così lento in confronto alla CPU che anche nei sistemi multiprogrammati, la CPU può essere in ozio per la maggior parte del tempo Soluzioni: Aumentare la memoria primaria Costoso Porta a programmi più grandi Swapping Operating System Support 2007-
Che cosa è lo Swapping? Esiste una coda a lungo termine di processi memorizzata sul disco; I processi vengono scambiati (swapped portati in memoria di lavoro al posto di altri) mano a mano che si rende disponibile spazio; Quando un processo viene completato, esce dalla memoria di lavoro e torna su disco; Se nessuno dei processi in memoria è pronto (cioè, tutti sono bloccati in attesa di I/O): Swap out il processo bloccato viene spostato da memoria a coda intermedia: Swap in un processo pronto (ready) o un processo nuovo viene portato in memoria: Ma lo swapping è un processo di I/O... Operating System Support 2007-
Partizionamento Si suddivide la memoria in sezioni da allocare ai processi (incluso il Sistema Operativo) Partizioni di dimensione fissa: Possono non avere tutte dimensioni identiche Il processo viene inserito nella partizione libera più piccola che lo può contenere (best fit) C è spreco di memoria Porta a partizioni di dimensione variabile Operating System Support 2007-
Partizionamento fisso Operating System Support 2007-
Partizioni di dimensione variabile (1) A un processo si alloca esattamente la memoria che gli occorre; conseguenza: area vuota alla coda della memoria, troppo piccola per poterla usare Ma ce ne è solo una minor spreco Quando tutti i processi sono bloccati, si procede a swap out di un processo per portarne un altro in memoria Il nuovo processo può essere più piccolo di quello swapped out Si crea un altra area vuota e inutilizzabile. Operating System Support 2007-
Partizioni con dimensione variabile (2) Alla fine ci si trova con una quantità di buchi (frammentazione) Soluzioni: Fusione si riuniscono le aree vuote adiacenti un un unica area grande Compattamento di tanto in tanto si esplora tutta la memoria e si spostano tutti I buchi in un unico blocco libero (si può confrontare la tecnica con la cosiddetta de-fragmentazioe del disco ) Operating System Support 2007-
Rilocazione Non c è garanzia che il processo la prossima volta verrà ricaricato nella stessa area di memoria; Le istruzioni contengono indirizzi di memoria: Indirizzi di dati Indirizzi-obiettivo dei salti Si distinguono: Indirizzi logici - relativi all inizio del programma Indirizzi fisici le effettive posizioni in memoria (nel momento attuale!) Meccanismi di conversione che fanno riferimento a un indirizzo base. Operating System Support 2007-
Paginazione Soluzione alternativa al partizionamento: Si suddivide la memoria in piccole aree tutte di uguale dimensione riquadri di pagine (page frames) Si suddividono i programmi (processi) in piccoli blocchi di pari dimensioni le pagine A un processo si alloca il numero di page frames necessario Il Sistema Operativo mantiene una lista delle frames libere Un processo non ha bisogno di page frames contigue Si usa una tabella delle pagine per tener conto della situazione (meccanismo della memoria virtuale!) Operating System Support 2007-