Diario delle Lezioni
a.a. 2014/2015

Principi di Sistemi Operativi
Ingegneria Informatica - Laurea Magistrale


Data
Argomento
Tipo
N Ore
Riferimento
Lun. 22/09/2014
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 linguaggi 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
Mer. 24/09/2014
GENERALITÀ - 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: fino a Gestione Networking esclusa (Lucidi so1.pdf).
L
2
Ven. 26/09/2014
GENERALITÀ - Terminato illustrazione dei vari gestori che costituiscono un Sistema Operativo, in particolare multiprogrammato e multiutente: Gestione Networking esclusa. Punti di vista diversi e differenze fra meccanismi e politiche (Lucidi so1.pdf). PROCESSI - 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). 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).
L
3
Lun. 29/09/2014
PROCESSI - 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. 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. Introdotto l\'ipotesi di sezioni critiche sufficientemente brevi (Lucidi so2bis.pdf).
L
2
Mer. 01/10/2014
PROCESSI - 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. Indivisibilita\' di WAIT e SIGNAL (Lucidi so2bis.pdf). Esempi di uso dei semafori: 1) gestore di risorse (Lucidi so2ter.pdf).
L
2
Ven. 03/10/2014
PROCESSI - SEMAFORI. Completato esempi di uso dei semafori: 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). Costrutti di sincronizzazione di alto livello per risolvere i problemi derivanti dall\'uso dei semafori che sono meccanismi di basso livello.
L
3
Lun. 06/10/2014
PROCESSI - MONITOR. 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). 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 (Lucidi so3bis.pdf).
L
2
Lun. 06/10/2014
Seminario sulla programmazione concorrente in Java: implementazione del concetto di thread, gestione dei thread, sincronizzazione dei thread ed esempi. (Prof.ssa Mariachiara Puviani).
E
2
Mer. 08/10/2014
PROCESSI - MONITOR. 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 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
Lun. 13/10/2014
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). 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 (Lucidi so5.pdf).
L
2
Lun. 13/10/2014
Introduzione all\'ambiente Eclipse e all\'uso delle librerie Java. 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
Mer. 15/10/2014
PROCESSI - SCAMBIO DI MESSAGGI. Proseguito nella descrizione delle scelte implementative (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. 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
Lun. 20/10/2014
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 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) (Lucidi so4.pdf)
L
2
Lun. 20/10/2014
ESERCIZI MONITOR - Risolto esercizio del Deposito bagagli (Esame 07/11/1996), presentato e discusso esercizio della Pizzeria al taglio (Esame 28/11/2008): lasciato da fare come esercizio (Prof.ssa Mariachiara Puviani)
E
3
Mer. 22/10/2014
NUCLEO di un S.O. - Classificazione dei tipi di scheduler: a lungo, a medio e a breve termine. Concetto di CPU- e I/O-burst per lo scheduler di breve termine. I 5 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
Lun. 27/10/2014
NUCLEO di un S.O. - Completato 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, ed esempi. 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 (Lucidi so6.pdf).
L
2
Lun. 27/10/2014
ESERCIZI MONITOR - Risolto esercizio della Raccolta differenziata (Esame 10/01/2000), presentato e discusso esercizio della Giostra (Esame 12/02/2014): lasciato da fare come esercizio (Prof.ssa Mariachiara Puviani)
E
3
Mer. 29/10/2014
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; svantaggi e caso particolare di tipi di risorse con singola istanza. 3) Detection e Recovery. Iniziato presentazione dell\'Algoritmo di Detection (Lucidi so6.pdf).
L
2
Lun. 03/11/2014
NUCLEO di un S.O. - Metodi per il trattamento del deadlock: 3) Ripreso Algoritmo di Detection con esempi 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). 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 (Lucidi so7.pdf).
L
2
Lun. 03/11/2014
ESERCIZI MONITOR - Risolto esercizio delle Elezioni (Esame 25/06/2007), presentato e discusso esercizio del Pronto Soccorso (Esame 12/09/2012): lasciato da fare come esercizio (Prof.ssa Mariachiara Puviani)
E
3
Mer. 12/11/2014
MEMORIA - Politiche di allocazione contigua: 2) conclusione su Partizionamento statico: Protezione e Condivisione; 3) Partizionamento dinamico: evoluzione del partizionamento statico. Algoritmo 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). Necessita\' di registro base e registro limite della TDS. Problema overhead in accesso: soluzione con registri di segmento (Lucidi so7.pdf).
L
2
Lun. 17/11/2014
MEMORIA - Politiche di allocazione contigua: 4) conclusione su Segmentazione: Protezione e condivisione (Lucidi so7.pdf). 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
Lun. 17/11/2014
ESERCIZI MONITOR - Risolto esercizio dell\'Officina (Esame 21/12/2012), presentato e discusso esercizio del Parco Giochi (Esame 16/12/2011): lasciato da fare come esercizio (Prof.ssa Mariachiara Puviani)
E
3
Mer. 19/11/2014
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. Possibilita’ di ottimizzazione se a livello Hw e’ presente il Dirty Bit. Strategie di sostituzione: 1) FIFO e anomalia di Belady; 2) Ottima (OPT) (Lucidi so8bis.pdf).
L
2
Lun. 24/11/2014
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
Lun. 24/11/2014
ESERCIZI MONITOR - Risolto esercizio dell\'Albergo (Esame 19/12/2008), presentato e discusso esercizio del Terremoto (Esame 20/06/2012): lasciato da fare come esercizio (Prof. Nicola Bicocchi)
E
3
Mer. 26/11/2014
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
Lun. 01/12/2014
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
Lun. 01/12/2014
ESERCIZI MONITOR - Risolto esercizio del Negozio di Cellulari (Esame 19/02/2010), presentato e discusso esercizio dell\'Elicottero (Esame 10/12/2010): lasciato da fare come esercizio (Prof.ssa Mariachiara Puviani)
E
3
Mer. 03/12/2014
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. 10/12/2014
PERSA A CAUSA DELLE LAUREE.
L
2
Lun. 15/12/2014
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
Lun. 15/12/2014
Prova in itinere (Lab. LINFA).
E
3
Mer. 17/12/2014
FILE - Conclusioni su metodi di allocazione. Schemi funzionali delle primitive sui file con esemplificazioni in UNIX. Generalizzazione dei file: dispositivi e PIPE (con esemplificazioni in UNIX). 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 (ripreso quindi lucidi iniziali).
L
2

Legenda:
E= Esercitazione
L= Lezione