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
|
|