Diario delle Lezioni
a.a. 2013/2014

Principi di Sistemi Operativi
Ingegneria Informatica - Laurea Magistrale


Data
Argomento
Tipo
N Ore
Riferimento
Lun. 23/09/2013
Lezione non tenuta per infortunio.
L
2
Mer. 25/09/2013
Lezione non tenuta per infortunio.
L
2
Ven. 27/09/2013
Seminario sulla programmazione concorrente in Java: implementazione del concetto di thread, gestione dei thread, sincronizzazione dei thread ed esempi. (Prof.ssa Mariachiara Puviani).
E
3
Lun. 30/09/2013
Lezione non tenuta per infortunio.
L
2
Mer. 02/10/2013
Introduzione al corso, programma, testi consigliati, esame, scheda informativa (Lucidi prog.pdf). Definizione di Sistema Operativo. Storia dei Sistemi Operativi: esecuzione sequenziale ed esecuzione batch: origine dei linguggi comandi (come quello della shell di UNIX) e origine del concetto di dispositivi logici di I/O e della ridirezione (Lucidi so1.pdf).
L
2
Ven. 04/10/2013
Storia dei Sistemi Operativi: multiprogrammazione. Categorie di Sistemi Operativi: sistemi batch, sistemi multiprogrammati (anche sistemi real-time e sistemi in time-sharing) e misti. Struttura di un Sistema Operativo. Illustrazione dei vari gestori che costituiscono un Sistema Operativo, in particolare multiprogrammato e multiutente.Punti di vista diversi e differenze fra meccanismi e politiche (Lucidi so1.pdf). Primo livello di un Sistema Operativo: NUCLEO. Grafo di precedenza degli eventi. Definizione di Processo sequenziale: grafo ad ordinamento totale. Definizione di Processo non sequenziale: grafo ad ordinamento parziale (Lucidi so2.pdf).
L
3
Lun. 07/10/2013
(LEZIONE DI RECUPERO) PROCESSI - Requisiti per eseguire un processo NON sequenziale: elaboratore NON sequenziale e linguaggio di programmazione NON sequenziale. Definizione di processo concorrente. Stati e descrittore di processo (Lucidi so2.pdf). Relazioni fra processi concorrenti: disgiunti e interagenti (competizione e cooperazione). Introdotto velocemente descrizione dei modelli dei processi ad ambiente globale e locale . Descrizione dei modelli dei processi ad ambiente globale e locale e relativi tipi di interazione (Lucidi so2bis.pdf).
L
2
Lun. 07/10/2013
PROCESSI - Problema base della competizione in ambiente globale: la mutua esclusione con definizione di sezione critica. Requisiti e vari tentativi per risolvere il problema della M.E. Ipotesi di sezioni critiche sufficientemente brevi: primitive LOCK ed UNLOCK e loro implementazione (con istruzioni HW tipo TEST-AND-SET oppure EXCHANGE) (Lucidi so2bis.pdf).
L
2
Mer. 09/10/2013
(LEZIONE DI RECUPERO) PROCESSI - SEMAFORI. Definizione di Semaforo: primitive WAIT e SIGNAL. Definizione di invariante del semaforo: prove di correttezza. Indivisibilita\' di WAIT e SIGNAL (Lucidi so2bis.pdf). Esempi di uso dei semafori: 1) gestore di risorse; 2) problema lettori/scrittori: prima soluzione con discussione sul problema della starvation e ultima (terza) soluzione senza starvation (Lucidi so2ter.pdf).
L
2
Mer. 09/10/2013
PROCESSI - SEMAFORI. Completato esempi di uso dei semafori: 3) problema della cena dei filosofi: possibile soluzione e discussione problema di deadlock e soluzioni alternative (Lucidi so2ter.pdf). Cooperazione fra processi nel modello ad ambiente globale. Problema del produttore/consumatore: soluzione con buffer circolare e semafori. Caso piu\' produttori e piu\' consumatori: nuova soluzione sempre con buffer circolare e semafori. Problema di invio di segnali: soluzione con uso di semafori (Lucidi so3.pdf). Costrutti di sincronizzazione di alto livello: il costrutto di sincronizzazione MONITOR del Concurrent Pascal. Due livelli di sincronizzazione: mutua esclusione nell\'accesso al monitor e variabili condizione (con operazioni WAIT e SIGNAL) (Lucidi so3bis.pdf).
L
2
Ven. 11/10/2013
PROCESSI - MONITOR. Ripreso concetto di variabili condizioni e spiegato il comportamento delle operazioni WAIT e SIGNAL e le differenze rispetto alle omonime operazioni sui semafori. Presentazione delle due semantiche possibili della SIGNAL su una variabile condizione: la semantica SEGNALA E ASPETTA (Hoare) e quella SEGNALA E CONTINUA (Java). Esempi di uso di MONITOR relativi a problemi di competizione in ambito globale: 1) semplice problema di MUTUA ESCLUSIONE su una risorsa; 2) problema LETTORI-SCRITTORI (QUEUE come ulteriore operazione su variabili condizione); 3) problema dei FILOSOFI. Esempi di uso di MONITOR relativi a problemi di cooperazione in ambito globale: due soluzioni del problema PRODUTTORI-CONSUMATORI. Realizzazione del Monitor in termini di semafori (Lucidi so3bis.pdf).
L
3
Lun. 14/10/2013
PROCESSI - MONITOR. Variabili condizione con priorita\': 2 esempi (gestione risorsa con tempo di uso e gestione disco a testine mobili). Problema dei monitor innestati. Path Expression: 2 esempi (lettori/scrittori e produttori/consumatori) (Lucidi so3bis.pdf). Ripreso differenze fra Modello ad ambiente globale e Modello ad ambiente locale. PROCESSI - SCAMBIO DI MESSAGGI. Modello ad ambiente locale: scambio di messaggi e definizione di canale \"logico\" di comunicazione. Scelte implementative: 1) designazione coppia sender/receiver: a) diretta (schema simmetrico e asimmetrico); b) indiretta (mailbox) (Lucidi so5.pdf).
L
2
Mer. 16/10/2013
PROCESSI - SCAMBIO DI MESSAGGI. Proseguito nella descrizione delle scelte implementative: 2) Bufferizzazione: a) Assenza bufferizzazione (sincronicita\'); soluzioni al possibile problema di blocco con introduzione time-out oppure b) Presenza di bufferizzazione (asincronicita\'): caso di bufferizzazione finita (N) e infinita. Semantica della Receive non bloccante. Ultima scelta implementativa: 3) Lunghezza dei messaggi: a) fissa e b) variabile. Il caso delle pipe di UNIX. Realizzazione fisica di un canale logico: il caso di UNIX. Send sincrona vs. asincrona. Problemi di ordinamento dei messaggi. Condizioni di errore: terminazione dei processi (il caso di UNIX), messaggi persi o corrotti (Lucidi so5.pdf).
L
2
Ven. 18/10/2013
Introduzione all\'ambiente Eclipse e all\'uso delle librerie Java. Registrazione studenti. ESERCIZI MONITOR - Package Java del monitor. Esercizi in Java: ponte semplice, ponte con capacita\' limitata, ponte senza starvation, ponte con utenti di peso diverso. Presentato e discusso esercizio del Traghetto (Esame del 31/03/2008): lasciato da fare come esercizio (Prof.ssa Mariachiara Puviani).
E
3
Lun. 21/10/2013
PROCESSI - SCAMBIO DI MESSAGGI. Esempi: due soluzioni al problema produttori/consumatori; due soluzione per la realizzazione di un semaforo binario. Linguaggi di programmazione concorrenti con modello ad ambiente locale: CSP, OCCAM e ADA (rendez-vous esteso e RPC o RMI) (Lucidi so5.pdf). PROCESSI - NUCLEO. Punto di vista interno del NUCLEO di un S.O. Processo Running, Ready Queue, code dei processi sospesi e descrittori di processo (esempio di UNIX, Lucidi UNIXPROC-breve.pdf). Primitive di base (creazione, distruzione, sospensione e riattivazione di processi) e loro relazione con le transizioni di stato. Transizioni di stato in generale (Lucidi so4.pdf).
L
2
Mer. 23/10/2013
NUCLEO di un S.O. - Ripreso transizioni di stato in generale e quindi rivisto le transizioni di stato in UNIX. Process/context switching e dispatcher. Approfondimento su creazione processi (Lucidi so4.pdf): rivisto il caso di UNIX: fork ed exec (Lucidi UNIXPROC-breve.pdf). Processi pesanti vs. processi leggeri (thread). Classificazione dei tipi di scheduler: a lungo, a medio e a breve termine. Parametri per valutare le prestazioni dello scheduler. CPU Scheduler con o senza Preemption (Lucidi so4.pdf).
L
2
Ven. 25/10/2013
Non tenuta per problema di salute dell\\\'Ing. Mariachiara Puviani.
E
3
Lun. 28/10/2013
NUCLEO di un S.O. - Algoritmi di Scheduling: FCFS, SJF, SRTF, ROUND-ROBIN, con priorita\' con e senza preemption (per sistemi Soft Real-Time), con code multiple e anche con retroazione (il caso di UNIX). Scheduling per sistemi multiprocessore eterogenei e omogenei (Lucidi so4.pdf). Problema del DEADLOCK: definizione, e primi esempi (Lucidi so6.pdf).
L
2
Mer. 30/10/2013
NUCLEO di un S.O. - Ripreso DEADLOCK: definizione ed esempio. Le quattro condizioni necessarie. Grafo di allocazione: ciclo come condizione necessaria e caso particolare come condizione necessaria e sufficiente; esempi di cicli come situazione di deadlock e non. Classificazione dei metodi per il trattamento del deadlock: prevenzione vs. soluzione a posteriori. Metodi per il trattamento del deadlock: 1) Prevenzione statica: negazione di una delle 4 condizioni, in particolare dell\'ultima (attesa circolare) con ordinamento dei tipi di risorse; 2) Prevenzione dinamica. Definizione di stato sicuro e di sequenza sicura. Algoritmo del banchiere: vari esempi (Lucidi so6.pdf).
L
2
Mer. 30/10/2013
(ESERCITAZIONE DI RECUPERO) ESERCIZI MONITOR -Risolto esercizio del Deposito Bagagli (Esame 07/11/1996), presentato e discusso esercizio della Raccolta Differenziata (Esame 10/01/2000): lasciato da fare come esercizio (Prof.ssa Mariachiara Puviani)
E
2
Lun. 04/11/2013
NUCLEO di un S.O. - Metodi per il trattamento del deadlock: 2) Ripreso esempio Algoritmo del Banchiere con caso di stato futuro NON sicuro e completato prevenzione dinamica con osservazione sugli svantaggi e con caso particolare di tipi di risorse con singola istanza. 3) Detection e Recovery. Algoritmo di Detection e caso particolare. Varie possibilita\' di Recovery (Lucidi so6.pdf). Terzo livello: Gestione della memoria. Punto di vista dell\'utente: programmi assoluti e rilocabili (staticamente e dinamicamente) (Lucidi so7.pdf).
L
2
Mer. 13/11/2013
MEMORIA - Punto di vista interno: funzioni del Gestore della Memoria. Politiche di allocazione e parametri di valutazione. Politiche di allocazione contigua: 1) Monitor monoprocesso. 2) Partizionamento statico: strategie di selezione (first fit e best fit) e frammentazione interna. Gestione tramite swapping. Problematiche di protezione e condivisione. Osservazioni sul Partizionamento statico (Lucidi so7.pdf).
L
2
Ven. 15/11/2013
ESERCIZI MONITOR - Risolto esercizio della Pizzeria al Taglio (Esame 28/11/2008), presentato e discusso esercizio dell\'Elicottero (Esame 10/12/2010): lasciato da fare come esercizio (Prof.ssa Mariachiara Puviani).
E
3
Lun. 18/11/2013
MEMORIA - Politiche di allocazione contigua: 3) Partizionamento dinamico: evoluzione del partizionamento statico. Algorimo di allocazione: Strategie di selezione (first fit e next fit; best fit e worst fit) e definizione costante c. Algoritmo di deallocazione: fusione aree libere. Frammentazione esterna: compattazione. 4) Segmentazione. Tabella dei segmenti (TDS). Necessità di registro base e registro limite della TDS. Problema overhead in accesso: soluzione con registri di segmento. Protezione e condivisione nella segmentazione (Lucidi so7.pdf).
L
2
Mer. 20/11/2013
MEMORIA - Politiche di allocazione non contigua: Paginazione. Tabella delle pagine (TDP). Allocazione/deallocazione delle pagine: tabella della memoria o lista numeri pagine libere. Registri base e limite della TDP. Problema overhead in accesso: cache delle pagine. Problema di Frammentazione di pagina. Protezione e condivisione: meno flessibili rispetto alla segmentazione. Differenze fra paginazione e segmentazione: vantaggi/svantaggi e quindi presentazione della combinazione dei due metodi di allocazione (segmentazione con paginazione) (Lucidi so8.pdf).
L
2
Ven. 22/11/2013
ESERCIZI MONITOR -Risolto esercizio delle Elezioni (Esame 25/06/2007), presentato e discusso esercizio della Lavanderia (Esame 12/10/2012): lasciato da fare come esercizio (Prof.ssa Mariachiara Puviani)
E
3
Lun. 25/11/2013
MEMORIA - Politiche di gestione della memoria: definizione di Memoria Virtuale. Paginazione su richiesta: pager. Bit di presenza/mancanza di pagina. Meccanismo del page fault e problema della interrompibilita\' delle istruzioni dovute ad esso: requisiti Hw. Strategie di ricerca e di posizionamento. Possibilità di ottimizzazione se a livello Hw è presente il Dirty Bit. Strategie di sostituzione: 1) FIFO e anomalia di Belady; 2) Ottima (OPT) (Lucidi so8bis.pdf).
L
2
Mer. 27/11/2013
MEMORIA VIRTUALE - Altra strategia di sostituzione oltre la FIFO e l\'OPT: LRU (Least Recently Used). Implementazioni di LRU (con Clock dedicato oppure con Stack dedicato) e sue approssimazioni utilizzando il Reference Bit: memorizzazione dei reference bit, algoritmo di seconda chance (NRU, Not Recently Used), classi di pagine (uso anche del Dirty Bit e quindi algoritmo di seconda chance migliorato). Politiche di sostituzione locali o globali. Politiche di allocazione: uguale e diseguale. Definizione del principio di localita\' e Teoria del working set, come politica di allocazione/sostituzione (Lucidi so8bis.pdf).
L
2
Ven. 29/11/2013
ESERCIZI MONITOR - Risolto esercizio del Centro prelievi (Esame 17/71/2000), presentato e discusso esercizio della Stazione Ferroviaria (Esame 22/11/2006): lasciato da fare come esercizio (Prof.ssa Mariachiara Puviani)
E
3
Lun. 02/12/2013
MEMORIA VIRTUALE - Politica di allocazione basata sulla Frequenza dei Page-Fault. Considerazioni varie: dimensione della pagina, cache delle pagine; protezione e condivisione; I/O interlocking; elaborazioni in tempo reale. Memoria virtuale basata sulla segmentazione: vantaggi e svantaggi. Memoria virtuale basata su segmentazione con paginazione per ottenere i vantaggi di entrambi gli schemi (Lucidi so8bis.pdf). Gestione della memoria in particolare quella virtuale in UNIX (Lucidi so8ter.pdf). Conclusioni sulla memoria virtuale (Lucidi so8bis.pdf).
L
2
Mer. 04/12/2013
FILE - Gestione dei FILE. Tipi di file. Punto di vista dell\'utente (esempi di UNIX e DOS): comandi tipici, volumi, direttori e loro struttura cioe\' direttori ad un solo livello, a due livelli, ad albero e a grafo -possibilmente- aciclico (concetto di link come strumento di condivisione di file): caso di Unix e Windows (Lucidi so9.pdf).
L
2
Ven. 06/12/2013
ESERCIZI MONITOR -Risolto esercizio dell\'Ambasciata (Esame 15/02/2012), presentato e discusso esercizio del Museo (Esame 20/09/2004): lasciato da fare come esercizio (Prof.ssa Mariachiara Puviani)
E
3
Lun. 09/12/2013
FILE - Protezione di risorse con particolare riferimento al file system; dominio di protezione e possibilita\' di modificare il dominio (il caso di exec e SUID/SGID di UNIX). Matrice di protezione e sua implementazione con ACL (il caso di UNIX) e C-List. Punto di vista del programmatore di sistema (primitive): creazione, scrittura, lettura e cancellazione. Necessita\' per ottimizzare le operazioni di un\'ulteriore operazione: apertura file e quindi anche chiusura file. Discorso sulla tabella dei file aperti: implementazione in UNIX. Metodi di accesso: sequenziale e diretto. Cominciato punto di vista del S.O.: concetto di blocco fisico e relazione con record logico (Lucidi so9.pdf)
L
2
Mer. 11/12/2013
FILE - Punto di vista del S.O. Implementazione dei direttori: DNF e DBF (es. UNIX: I-Number e I-Node) e rispiegato le diverse tabelle usate dinamicamente nell\'accesso ai file in UNIX (Lucidi so9.pdf). Metodi di allocazione e problema frammentazione interna: 1) Contigua. 2a) Non contigua concatenata (Es. MS-DOS: FAT); 2b) Non continua ad indice (Es. UNIX) (Lucidi so9bis.pdf).
L
2
Ven. 13/12/2013
ESERCIZI MONITOR -Risolto esercizio della Sala Parto (Esame 04/12/2009), presentato e discusso esercizio dell\'Asilo nido (Esame 22/06/2011): lasciato da fare come esercizio (Prof.ssa Mariachiara Puviani)
E
3
Lun. 16/12/2013
FILE - Conclusioni su metodi di allocazione. Schemi funzionali delle primitive sui file. Generalizzazione dei file: dispositivi e PIPE. Discorso su aspetti di Sistemi Operativi di rete: il caso di NFS (Network File System) (Lucidi so9bis.pdf). Discorso conclusivo sul corso: strutturazione a livelli di un sistema operativo, obiettivi formativi, programma ed esame.
L
2
Mer. 18/12/2013
Spiegazioni/approfondimenti sugli argomenti svolti.
L
2
Ven. 20/12/2013
Prova in itinere (Lab. LINFA) con la collaborazione dell\'Ing. Mariachiara Puviani.
E
3

Legenda:
E= Esercitazione
L= Lezione