Data
|
Argomento
|
Tipo
|
N° Ore
|
Riferimento
|
Lun. 24/9/2012
|
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
|
|
Mer. 26/9/2012
|
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 (Lucidi so1.pdf).
|
L
|
2
|
|
Ven. 28/9/2012
|
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.
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 (Lucidi so2bis.pdf).
|
L
|
3
|
|
Lun. 01/10/2012
|
PROCESSI - 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.
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. 03/10/2012
|
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
|
|
Ven. 05/10/2012
|
Seminario sulla programmazione concorrente in Java: implementazione del concetto di thread, gestione dei thread,
sincronizzazione dei thread ed esempi. Introduzione all'ambiente Eclipse e all'uso delle librerie Java. Registrazione studenti.
(Prof.ssa Mariachiara Puviani).
|
E
|
3
|
|
Lun. 08/10/2012
|
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).
Presentazione delle due semantiche possibili della SIGNAL su una variabile condizione:
la semantica SEGNALA E ASPETTA (Hoare) e quella SEGNALA E CONTINUA (Java) (Lucidi so3bis.pdf).
|
L
|
2
|
|
Mer. 10/10/2012
|
PROCESSI - MONITOR. 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
|
2
|
|
Ven. 12/10/2012
|
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. 15/10/2012
|
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. 17/10/2012
|
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. 19/10/2012
|
ESERCIZI MONITOR - Ripreso esercizio del Traghetto (Esame del 31/03/2008),
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
|
|
Lun. 22/10/2012
|
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. 24/10/2012
|
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. 26/10/2012
|
ESERCIZI MONITOR - Risolto esercizio della Raccolta Differenziata (Esame 10/01/2000),
presentato e discusso esercizio delle Elezioni del Sindaco (Esame 25/06/2007):
lasciato da fare come esercizio (Prof.ssa Mariachiara Puviani)
|
E
|
3
|
|
Lun. 29/10/2012
|
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, esempi e condizioni necessarie. Grafo di allocazione: ciclo come
condizione necessaria; esempio di ciclo come situazione di deadlock (Lucidi so6.pdf).
|
L
|
2
|
|
Mer. 31/10/2012
|
NUCLEO di un S.O. - Classificazione dei metodi per il trattamento del deadlock.
Metodi per il trattamento del deadlock: 1) Prevenzione statica; 2) Prevenzione dinamica. Definizione di stato sicuro e di sequenza sicura.
Algoritmo del banchiere: vari esempi (Lucidi so6.pdf).
|
L
|
2
|
|
Ven. 02/11/2012
|
ESERCITAZIONE NON TENUTA PER CHIUSURA DELLE STRUTTURE DECISA DALL'AMMINISTRAZIONE CENTRALE!
|
E
|
3
|
|
Lun. 05/11/2012
|
NUCLEO di un S.O. - Metodi per il trattamento del deadlock: 2) 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. 14/11/2012
|
MEMORIA - 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 (Lucidi so7.pdf).
|
L
|
2
|
|
Ven. 16/11/2012
|
ESERCIZI MONITOR - Risolto esercizio della Biblioteca (Esame 16/06/2000), presentato
e discusso ultimo esame delle Lavatrici (Esame 12/10/2012), presentato e discusso
esercizio del Terremoto (Esame 20/06/2012) lasciato da fare come esercizio (Prof.ssa
Mariachiara Puviani)
|
E
|
3
|
|
Lun. 19/11/2012
|
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. 21/11/2012
|
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. 23/11/2012
|
ESERCIZI MONITOR - Risolto esercizio dell'Ufficio Postale (Esame 30/03/200), presentato e discusso esercizio del
Negozio cellulari (Esame 19/02/2010) lasciato da fare come esercizio (Prof.ssa Mariachiara Puviani)
|
E
|
3
|
|
Lun. 26/11/2012
|
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. 28/11/2012
|
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. 30/11/2012
|
ESERCIZI MONITOR - Risolto esercizio dell'Ambasciata (Esame 15/02/2012), presentato e discusso esercizio
del Centro Agopuntura (Esame 18/01/2012) lasciato da fare come esercizio (Prof.ssa Mariachiara Puviani).
|
E
|
3
|
|
Lun. 03/12/2012
|
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. 05/12/2012
|
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. 07/12/2012
|
Esercitazione non tenuta per assenza Ing. Mariachiara Puviani.
|
E
|
3
|
|
Lun. 10/12/2012
|
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. 12/12/2012
|
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. 14/12/2012
|
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.
Presentate le modalità per l'esame pratico (Prof.ssa Mariachiara Puviani).
|
E
|
3
|
|
Lun. 17/12/2012
|
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. 19/12/2011
|
Spiegazioni/approfondimenti sugli argomenti svolti.
|
L
|
2
|
|
Ven. 21/12/2012
|
Prova in itinere (Lab. LINFA).
|
E
|
3
|
|