Corso di Sistemi Operativi per Informatica
AA. 2009-10
Risultati appello 15 Dic 10:
188659: 30L
100337: 24
185531: 24
199988: 20
Testo consigliato: Silbershatz Sistemi Operativi (concetti ed esempi). Ottava Edizione. Pearson.
Altri links:
Dispense online di Eugenio Omodeo (Sincronizzazione)
|
TEORIA |
|
|
Lezione 1, 100302:
|
Introduzione ai sistemi operativi. Richiami di architetture e compiti del sistema operativo. Modo utente e supervisore. Interruzioni. |
|
Lezione 2, 100303:
|
Evoluzione sistemi operativi: sistemi batch, sistemi multiprogrammati, time-sharing, paralleli, reti di calcolatori. |
|
Lezione 3, 100309:
|
Sistemi real-time, embedded. Gestione processi, memoria centrale, files. Gestione i/o, protezione, interprete comandi. Storia Unix. |
|
Lezione 4, 100316:
|
Sistemi monolitici, a livelli, modulari. Macchine virtuali. Gestione processi, process control block. Stato dei processi. |
|
Lezione 5, 100317:
|
Creazione processi, fork e struttura ad albero. Terminazione. Thread. Modelli multithread (molti a uno, uno a uno, molti a molti). Burst di cpu e curva di frequenza. Dispatcher. Criteri di scheduling (indici: utilizzo cpu, throughput, turnaround, waiting, response time). |
|
Lezione 6, 100323:
|
Algoritmi di scheduling: FIFO, SJF (esempi, media esponenziale, prova sketch ottimalita'). Scheduling a priorita', starvation e aging. Round robin. |
|
Lezione 7, 100324:
|
Coda a piu' livelli, con retroazione e scheduling real time. Es scheduling linux O(1). Comunicazione tra processi, memoria condivisa. Esempio produttore consumatore. Meccanismi IPC (introduzione). |
|
Lezione 8, 100330:
|
Comunicazione: messaggi e mailbox. Modello diretto, indiretto. Sincronizzazione: produttore e consumatore con race condition. Definizione di sezione critica: mutua esclusione, progresso, attesa limitata. Realizzazione sezione critica: disabilitazione interruzioni. Alternanza stretta. Variabili di lock. |
|
Lezione 9, 100331:
|
Algoritmo di Peterson per 2 processi. Algoritmo del panettiere (Baker). Test and set lock (esempio assembly). |
|
Lezione 10, 100413:
|
Esempio di sleep e wakeup.Problema della sveglia. Semafori, definizione ed utilizzo per implementare mutex e produttore-consumatore. Monitor, produttore e consumatore con monitor. Problema dei 5 filosofi. Soluzione con semafori e deadlock. Soluzione senza deadlock ma con starvation. |
|
Lezione 11, 100414:
|
5 filosofi: soluzione senza stallo ne' starvation. Barbiere sonnolento. Problema lettori e scrittori con precedenza a lettori. Il Deadlock: 4 condizioni necessarie (mutua esclusione, hold+wait, no preemption, attesa circolare). Il Deadlock: grafo allocazione risorse Holt. |
|
Lezione 12, 100420:
|
Gestione deadlock: prevenzione, rilevazione. Stato sicuro. Algoritmo del banchiere. Analisi cicli in grafo di attesa. Risoluzione deadlock: interruzione, checkpoint, preemption. Gestione Memoria: indirizzi. Collegamento indirizzi e compilatori. |
|
Lezione 13, 100421:
|
Spazio di indirizzamento, caricamento e collegamento dinamico. Swap. Schemi di gestione della memoria: Partizione singola (base e limite), partizione multipla (fissa e dinamica). Gestione memoria: gestione buchi, ricerca first best and worst fit. Frammentazione interna e esterna. Compattazione. |
|
Lezione 14, 100427:
|
Paginazione. Conversione indirizzo logico in fisico. Conversione indirizzo logico in fisico. Implementazione tabella pagine: registri dedicati, puntatori in memoria centrale, memorie associative. Costo medio accesso a memoria con tlb. Protezione e condivisione. Paginazione a 2 livelli. Segmentazione. Implementazione con registri base+limite. Protezione e condivisione. |
|
Lezione 15, 100428:
|
Segmentazione paginata, esempio x86. Memoria virtuale, paginazione su richiesta. Page fault, swap in e swap out. Problema del riavvio dell'istruzione. Copia durante la scrittura. Multiprogrammazione e sovraallocazione: algoritmi di sostituzione pagine e allocazione frames. Dirty bit. Stringa di riferimento. Algoritmo di sostituzione fifo. Anomalia di Belady. |
|
Lezione 16, 100504:
|
Sostituzione ottimale e lru (contatori, stack, 1 o piu' bit di riferimento). Sostituzione con algoritmo seconda possibilita' (o chance, orologio). Sostituzione LFU e MFU. Allocazione frames: omogenea, proporzionale. Thrashing. Principio localita'. Evitare thrashing con working set o frequenza page fault. |
|
Lezione 17, 100505:
|
Esempio di gestore memoria virtuale in WIN XP. Gestione periferiche di I/O. Controller, porte, I/O mappato in memoria. Handshaking. Interrupt vs polling. DMA. Interfacce I/O e syscall. Servizi kernel: scheduling, buffering, caching, spooling, errori. |
|
Lezione 18, 100511:
|
Struttura delle memorie di massa. Tempo di accesso e banda. Schedulazione disco (testina): fcfs, sstf, scan, c-scan, look, c-look. Configurazione disco, blocco di avvio, blocchi difettosi, swap. Raid, tempo medio al guasto. Ridondanza e data striping. |
|
Lezione 19, 100512:
|
Livelli 0,1,5,0+1,1+0. File System: caratterizzazione. Struttura directory: singolo livello, 2 livelli, ad albero, a grafo aciclico, grafo generale. Montaggio file system. File system remoti. Semantica coerenza per file condivisi. Protezione: acl e stile unix. |
|
Lezione 20, 100525:
|
Implementazione file system: livelli. Organizzazione su disco e in memoria. La creazione e apertura di un file. Virtual file system. Realizzazione directory. Metodi di allocazione. Contigua, collegata (linked): cluster e FAT. |
|
Lezione 21, 100526:
|
Allocazione indicizzata, multilivello e schema combinato (unix file system). Gestione spazio libero: bitmap, lista collegata, raggruppamento, RLE. Esercizi di ripasso. |
Per vedere lo schermo: http://hpc100.sci.unipr.it:5800/
|
LABORATORIO |
|
|
Lezione 1, 100304
|
Introduzione: presentazione.txt Come generare (in parte) la documentazione: latex.txt Lucidi: Shell lezione 1 |
|
Lezione 2, 100311 |
Lucidi: Shell lezione 2 |
|
Lezione 3, 100318 |
Lucidi: Shell lezione 3 |
|
Lezione 4, 100325 |
Lucidi: Shell lezione 4 |
|
Lezione 5, 100408 |
Lucidi: System programming lezione 5 Esempio di fork e wait: esempiofork.c File di configurazione per doxygen: Doxyfile Esempio shell di R.Alfieri: mysh-0.1 |
|
Lezione 6, 100415 |
Lucidi: Pipe e IPC lezione 6 Esempio di pipe: pipe.c Esempio di memoria condivisa: shmem.c Esempio di semaforo: sem.c |
|
Lezione 7, 100422 |
Lucidi: Threads Lezione 7 Esempio di creazione pthreads: exCreazioneThread.c Esempio di mutex e threads: mutex.c Esempio di semaforo e threads: semthread.c |
|
Lezione 8, 100429 |
Esercitazione assistita |
|
Lezione 9, 100506 |
Esercitazione assistita |
|
Lezione 10, 100513 |
Esercitazione assistita |
Requisiti per poter sostenere l'esame di Laboratorio.
Progetti bash programming e C system programming.