Corso di Sistemi Operativi per Informatica
AA. 2005-06
Nota: i voti degli scritti saranno validi fino alla sessione di settembre compresa. Dalla sessione di gennaio sara' necessario rifare gli scritti.
Il libro di testo seguito e': Silberschatz, Galvin, Gagne: Sistemi operativi. Apogeo 2005. (Ci sono 2 copie in biblioteca)
Altri links:
Dispense online di Eugenio Omodeo (Sincronizzazione)
|
TEORIA |
|
|
Lezione 1, 060306:
|
Introduzione ai sistemi operativi, evoluzione sistemi operativi: sistemi batch, multiprogrammati, time-sharing, paralleli, di rete, distribuiti e cluster (dal Capitolo 1 del testo) |
|
Lezione 2, 060307:
|
Sistemi real-time, embedded. Struttura del S.O., gestione processi, memoria centrale, files, i/o, memoria secondaria, protezione, interprete dei comandi. Servizi S.O. Chiamate di sistema (Capitoli 3.1—3.3) |
|
Lezione 3, 060313:
|
Storia di Unix. Sistemi monolitici, a livelli. Struttura modulare. (Cap 3.5) Macchine virtuali. (Cap 3.6). Processi: definizione, process control block, stato dei processi, context switch. Scheduling dei processi: a breve, medio e lungo termine. (Cap 4.1, 4.2). Creazione processi. |
|
Lezione 4, 060314:
|
Terminazione processi. Esempio C di gestione processi. (Cap 4.3). Thread e modelli multithread. (Cap 5.1 e 5.2). Scheduling CPU. Processi CPU e I/O bounded. Algoritmi preemptive e non preemptive. Criteri di scheduling. (Cap 6.1 e 6.2). |
|
Lezione 5, 060320:
|
Algoritmi di scheduling: FCFS, SJF (esempi, media esponenziale, prova sketch ottimalita'), scheduling a priorita', starvation, aging, round robin. (Cap 6.3) |
|
Lezione 6, 060321:
|
Scheduling con coda a piu' livelli, retroazione, real time (Cap 6.3). Esempio SysV R4. Comunicazione processi. Sezione critica memoria condivisa. Esempio lettore/scrittore. IPC (Cap 4.4 e 4.5). |
|
Lezione 7, 060327:
|
Comunicazione diretta e indiretta. (Cap 4.5) Sincronizzazione: esempio produttore e consumatore con N elementi. Race condition e sezione critica. (Cap 7.1 e 7.2) Mutua esclusione: disabilitazione interruzioni, variabili di lock, alternanza stretta, algoritmo di Peterson (2 processi). (dispense sincronizzazione) |
|
Lezione 8, 060328:
|
Algoritmo del panettiere per N+2 processi. Hw di sincronizzazione. Sleep e wakeup. Semafori. Monitor. Esempi di sincronizzazione con semafori e monitor. I 5 filosofi con semafori. (dispense sincronizzazione) |
|
Lezione 9, 060403:
|
Esempi ed esercizi: i 5 filosofi con semafori (senza stallo ma starvation e senza ne' stallo ne' starvation). Lettori e scrittori. Barbiere sonnolento. |
|
Lezione 10, 060404:
|
Deadlock: definizione, condizioni necessarie, grafi di allocazione (Cap 8.2). Gestione deadlock, prevenire, evitare (stato sicuro). Esempi. (Cap 8.3--8.5). |
|
Lezione 11, 060410:
|
Deadlock: rilevazione e recupero (Cap 8.6). Gestione memoria. binding indirizzi, spazio indirizzamento, caricamento dinamico e collegamento dinamico (9.1.1--9.1.4) |
|
Lezione 12, 060411:
|
Overlay, Swapping (Cap 9.1.5 e 9.2). Gestione memoria: allocazione contigua (partizioni fisse e variabili) (Cap 9.3). Esempi. Frammentazione. Allocazione non contigua: paginazione (Cap 9.4 e 9.4.1). Esempi |
|
Lezione 13, 060502:
|
Compito sulla prima parte del corso |
|
Lezione 14, 060508:
|
Correzione compito e ripasso. |
|
Lezione 15, 060509:
|
Ripasso paginazione. Implementazione HW tabella delle pagine (Cap 9.4.2) Paginazione a 2 livelli (Cap 9.4.4). Segmentazione (Cap 9.5) |
|
Lezione 16, 060515:
|
Segmentazione paginata (Cap 9.6). Memoria virtuale. Demand paging (Cap 10.2). Copia durante la scrittura (Cap 10.3). |
|
Lezione 17, 060516:
|
Sostituizione pagine (Cap 10.4): Fifo (anomalia di Belady), ottimale LRU, LRU approssimato (bit e seconda possibilita'), conteggio (LFU e MFU). |
|
Lezione 18, 060522:
|
Allocazione frame (omogenea e proporzionale). Sostituzione globale e locale (Cap 10.5). Thrashing (Cap 10.6). Working set. Esempio memoria virtuale in Windows XP (10.9). |
|
Lezione 19, 060523:
|
Ripasso. Gestione Periferiche, controller, porte, interrupt, DMA. (Cap 13.1 13.2) |
|
Lezione 20, 060529:
|
Interfacce I/O (Cap 13.3). Il sottosistema I/O del kernel (Cap 13.4) Strutture delle memorie di massa (Cap 14.1). Schedulazione FCFS, SSTF, SCAN. |
|
Lezione 21, 060530:
|
Schedulazione C-SCAN, Confronti tra algoritmi schedulazione disco. Amministrazione disco (Cap 14.3): formattazione, partizione. Blocchi difettosi. Spazio Swap (Cap 14.4). Tempo medio al guasto. |
|
Lezione 22, 060605:
|
RAID (Cap 14.5): affidabilita' e prestazioni. livelli 0--5, 0+1, 1+0. File system: struttura (Cap 11.1, 11.2). Directory (singolo livello, 2 livelli, ad albero) Cap 11.3. |
|
Lezione 23, 060606:
|
Directory (a dag e grafo, Cap 11.3). Montaggio File System (Cap 11.4). Condivisione e File System remoti (Cap 11.5). Protezione (Cap 11.6). Implementazione File System, livelli (Cap 12.1). Partizioni. Virtual File System. (Cap 12.2) Realizzazione directory (Cap 12.3). |
|
Lezione 24, 060612:
|
Metodi di allocazione: contiguo, collegato, FAT, Indicizzato. Gestione spazio libero: mappa bit, lista collegata, raggruppamento e conteggio. Esercizi. |
|
Lezione 25, 060613:
|
Esercizi di ripasso. |
|
LABORATORIO |
|
|
Lezione 1, 060316
|
Introduzione: presentazione.txt Come generare (in parte) la documentazione: latex.txt Lucidi: Shell lezione 1 |
|
Lezione 2, 060323 |
Lucidi: Shell lezione 2 |
|
Lezione 3, 060330 |
Lucidi: Shell lezione 3 |
|
Lezione 4, 060406 |
Lucidi: Shell lezione 4 Esempio di shell script: esempio |
|
Lezione 5, 060420 |
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, 060504 |
Lucidi: Pipe e IPC lezione 6 Esempio di pipe: pipe.c Esempio di memoria condivisa: shmem.c Esempio di semaforo: sem.c |
|
Lezione 7, 060511 |
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, 060518 |
Collaboratore
didattico: Elio Panegai |
|
Lezione 9, 060525 |
Collaboratore
didattico: Elio Panegai |
|
Lezione 10, 060601 |
Collaboratore
didattico: Elio Panegai |
|
Lezione 11, 060608 |
Collaboratore
didattico: Elio Panegai |
Requisiti per poter sostenere l'esame di Laboratorio.
Progetti bash programming e C system programming.
Seminario 060524 Per Linguaggi Dichiarativi: Constraint Programming approaches to the Protein Folding Problem