![]() |
Codice: | 5I010 | Crediti: | 18 | Semestre: | 2 | Sigla: | SO1 |
Il corso si sviluppa attraverso successive astrazioni basate sul modello concorrente, che vengono concretizzate in termini di strutture dati e di algoritmi. Vengono considerati e analizzati i problemi di gestione delle risorse fisiche (come il processore o i processori, la memoria, i dispositivi di ingresso/uscita e di memoria secondaria) e di quelle astratte (come gli archivi). Viene dato ampio spazio al collegamento tra gli aspetti modellistici e quelli progettuali del sistema operativo. A questo fine vengono proposti numerosi esempi che coprono le principali problematiche e, nel loro complesso, sviluppano incrementalmente le componenti essenziali di un sistema operativo.
Processore, memoria, dispositivi di ingreso/uscita e di memoria secondaria. Stato utente e supervisore, istruzioni privilegiate. Sistema di interruzione e sistema di accesso diretto alla memoria. Sistemi uniprocessore e multiprocessore.
Il modello concorrente. (8 ore)
Concetto di processo; stato e transizioni di stato. Separazione degli spazi; condivisione di codice e di dati. Interazione tra processi e paradigmi di interazione: condivisione di dati, sincronizzazione, comunicazione. Condivisione di dati: sezioni critiche e mutua esclusione; sua realizzazione con meccanismi del processore e con protocolli eseguiti dai processi (lock/unlock). Sincronizzazione: modello booleano e produttore-consumatore; protocolli per la sincronizzazione. Comunicazione: designazione del mittente e del destinatario, sincronismo o asincronismo. Dipendenze tra i paradigmi di interazione. Interazione con i processi esterni. Generazione e terminazione di processi.
Nucleo e processi. (16 ore)
Modelli di organizzazione del sistema operativo. Realizzazione dei processi: descrittore e altre strutture dati; meccanismi di protezione. Semafori e primitive P e V; loro applicazione alla sincronizzazione, alla mutua esclusione e alla comunicazione; semafori privati. Primitive per la comunicazione, per la sincronizzazione con i processi esterni e per la generazione e terminazione. La gestione del processore: politiche elementari, gestione a più livelli, ordinamento a scadenza.
Le risorse. (4 ore)
Modelli di gestione delle risorse. Politiche elementari per la gestione. Il problema dello stallo: caratterizzazione, metodi per evitarlo, impedirlo, riconoscerlo ed eliminarlo. Attesa indefinita. Alcuni problemi classici.
Gestione dei dispositivi. (10 ore)
Dispositivi e processi di controllo. Gestione dei dispositivi a caratteri. Gestione del temporizzatore. Gestione dei dispositivi a blocchi con speciale riguardo per i dischi magnetici; politiche di ordinamento; politiche con memoria cache. Dispositivi virtuali: gestione di archivi sequenziali in memoria secondaria; SPOOL di uscita.
Gestione della memoria. (10 ore)
Gestione statica: partizioni fisse e variabili, paginazione statica, segmentazione statica. Overlay. Gestione dinamica: swapping, paginazione dinamica, segmentazione dinamica. Segmentazione combinata con paginazione. Modelli per la gestione dinamica della memoria: il concetto di località e di working set. Algoritmi di sostituzione.
Ore lezione: | 75 | Ore esercitazione: | 45 |