Diario delle Lezioni
a.a. 2011/2012

Principi di Sistemi Operativi
Ingegneria Informatica - Laura Magistrale


Data
Argomento
Tipo
N° Ore
Riferimento
Mer. 21/9/2011
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. (Lucidi so1.pdf).
L
2
Ven. 23/9/2011
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. Punto di vista diversi e differenze fra meccanismi e politiche. (Lucidi so1.pdf). Primo livello: 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. 26/9/2011
Precisazione su registrazione al corso, iscrizione esami e prova in itinere. 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). Descrizione dei modelli dei processi ad ambiente globale e locale. PROCESSI - Mutua esclusione. Definizione di sezione critica. (Lucidi so2bis.pdf).
L
2
Mer. 28/9/2011
PROCESSI - Ripreso problema di Mutua esclusione. 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). Definizione di Semaforo: primitive WAIT e SIGNAL. Definizione di invariante del semaforo: prove di correttezza. (Lucidi so2bis.pdf).
L
2
Ven. 30/9/2011
PROCESSI - 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; 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 di invio di segnali: soluzione con uso di semafori. Problema del produttore/consumatore: soluzione con buffer circolare e semafori. Caso piu' produttori e piu' consumatori: nuova soluzione sempre con buffer circolare e semafori (Lucidi so3.pdf).
L
3
Lun. 3/10/2011
PROCESSI - 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). 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: 1) semplice problema di MUTUA ESCLUSIONE su una risorsa; 2) problema LETTORI-SCRITTORI (QUEUE come ulteriore operazione su variabili condizione); 3) problema dei FILOSOFI (Lucidi so3bis.pdf).
L
2
Mer. 5/10/2011
PROCESSI - Esempi di uso di MONITOR: due versioni del problema PRODUTTORI-CONSUMATORI. Realizzazione del Monitor in termini di semafori. 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).
L
2
Ven. 7/10/2011
Seminario sulla programmazione concorrente in Java: implementazione del concetto di thread, gestione dei thread, sincronizzazione dei thread ed esempi. MONITOR - Introduzione all'ambiente Eclipse e all'uso delle librerie Java del monitor. Esercizi in Java: ponte semplice, ponte con capacita' limitata, ponte senza starvation, ponte con utenti di peso diverso. (Ing. Domnori)
E
3
Lun. 10/10/2011
PROCESSI - Ripreso differenze fra Modello ad ambiente globale e Modello ad ambiente locale. 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). 2) Bufferizzazione: a) Assenza bufferizzazione (sincronicita'); soluzione con time-out oppure b) Presenza di bufferizzazione (asincronicita'); caso di bufferizzazione finita (N) e infinita. Semantica della Receive non bloccante. 3) Lunghezza dei messaggi: a) fissa e b) variabile. Il caso delle pipe di UNIX. (Lucidi so5.pdf).
L
2
Mer. 12/10/2011
PROCESSI - 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. 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).
L
2
Ven. 14/10/2011
MONITOR - Esercizi in Java del deposito bagagli (esame 7/11/96 SOVOD) e della raccolta differenziata (due versioni, 10/01/00 SOVOD). (Ing. Domnori)
E
3
Lun. 17/10/2011
PROCESSI - Punto di vista interno: 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 e per 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).
L
2
Mer. 19/10/2011
NUCLEO di un S.O. - 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. Algoritmi di Scheduling: FCFS, SJF, SRTF, ROUND-ROBIN (Lucidi so4.pdf).
L
2
Ven. 21/10/2011
MONITOR - Esercizi in Java del Pastificio (esame del 07/07/2009) e della campo da golf (esame del 17/09/2003). (Ing. Domnori)
E
3
Lun. 24/10/2011
NUCLEO di un S.O. - Ripreso Algoritmi di Scheduling: 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, esempi e condizioni necessarie. Grafo di allocazione. Classificazione dei metodi per il trattamento del deadlock. Metodi per il trattamento del deadlock: 1) Prevenzione statica (Lucidi so6.pdf).
L
2
Mer. 26/10/2011
NUCLEO di un S.O. - Metodi per il trattamento del deadlock: 2) Prevenzione dinamica. Definizione di stato sicuro e di sequenza sicura. Algoritmo del banchiere: vari esempi. Caso particolare. 3) Detection e Recovery. Algoritmo di Detection e caso particolare. Varie possibilita' di Recovery (Lucidi so6.pdf).
L
2
Ven. 28/10/2011
ESERCITAZIONE NON TENUTA PER ASSENZA ING. DOMNORI.
E
3
Lun. 31/10/2011
LEZIONE NON TENUTA PER PONTE DECISO DALL'AMMINISTRAZIONE CENTRALE!
L
0
Mar. 8/11/2011
RECUPERO DELL'ESERCITAZIONE NON TENUTA: MONITOR - Esercizi in Java del Traghetto (Esame del 31/03/2008) e dell'elezione del sindaco (Esame 25/06/2007) il quale è stato solo impostato come problema ma non risolto durante la lezione. (Ing. Domnori)
E
2
Mer. 9/11/2011
Terzo livello: Gestione della memoria. Punto di vista dell'utente: programmi assoluti e rilocabili (staticamente e dinamicamente). Punto di vista interno: 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. 3) Partizionamento dinamico: evoluzione del partizionamento statico. (Lucidi so7.pdf).
L
2
Ven. 11/11/2011
MONITOR - Esercizi in Java della Sagra (Esame 11/09/2009) e dell'Ufficio postale (Esame 30/03/2009).
E
3
Lun. 14/11/2011
MEMORIA - Riassunto su Gestione della Memoria. Ripreso Partizionamento dinamico. 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. 16/11/2011
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 segnementazione. 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. 18/11/2011
MONITOR - Esercizi in Java dell'Elicottero (Esame 10/12/2010) e della Sala Parto (Esame 04/12/2009). (Ing. Domnori)
E
3
Lun. 21/11/2011
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: FIFO e anomalia di Belady (Lucidi so8bis.pdf).
L
2
Mer. 23/11/2011
MEMORIA VIRTUALE - Altre strategie di sostituzione oltre la FIFO (che soffre dell'anomalia di Belady): OPT e 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
Mer. 23/11/2010
MONITOR - Esercizi in Java del Distributore (Esame 21/01/2011) e del Call Centre (Esame 14/09/2011) il quale è stato solo impostato e non risolto. (Ing. Domnori)
E
2
Ven. 25/11/2010
MONITOR - Esercizio in Java del Call Centre (Esame 14/09/2011). (Ing. Domnori)
E
1
Lun. 28/11/2011
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. 30/11/2011
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. 2/12/2011
MONITOR - Esercizi in Java della Pizzeria al taglio (Esame 28/11/2008) e della Ferrovia (Esame 22/11/2006). (Ing. Domnori)
E
3
Lun. 5/12/2011
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.
L
2
Mer. 7/12/2011
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). Conclusioni su metodi di allocazione (Lucidi so9bis.pdf).
L
2
Ven. 9/12/2011
ESECITAZAZIONE NON TENUTA PER PONTE DECISO DALL'AMMINISTRAZIONE CENTRALE!
E
0
Lun. 12/12/2011
FILE - 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. 14/12/2011
LEZIONE NON TENUTA PER SOSPENSIONE LEZIONE CAUSA LAUREE!
L   
0
  
Ven. 16/12/2011
Prova in itinere (Lab. LINFA).
E
3
  
Lun. 19/12/2011
Correzione della Prova in Itinere. (Ing. Domnori)
E
2
Ler. 21/12/2011
Spiegazioni/approfondimenti sugli argomenti svolti.
L
2

Legenda:
L= Lezione
E= Esercitazione