( english version )
Sistemi operativi B ( 5 CFU )
Prof. Stefano Caselli
     Tel. 0521 905724 - Fax. 0521 905723           E-mail. stefano.caselli@unipr.it           Home page. http://www.ce.unipr.it/people/caselli

Finalità
L'insegnamento si propone di presentare in modo completo le architetture e le funzionalità dei moderni sistemi operativi, di introdurre i concetti principali dei sistemi concorrenti, e di rendere lo studente in grado di programmare applicazioni multiprocesso in ambiente C++/UNIX.

Programma
Architetture dei sistemi operativi. Sistemi a macchine virtuali. Gestione dei processi. Scheduling della CPU. Gestione della memoria. Memoria Virtuale. Gestione dell'I/O. Gestione dei file. Sicurezza.
Programmazione concorrente nel modello a memoria condivisa. Mutua esclusione e primitive di sincronizzazione. Gestione di risorse mediante semafori. Regioni critiche condizionali. Monitor. Supporti per la programmazione concorrente in Java.
Programmazione concorrente nel modello a memoria locale. Primitive send e receive. Remote procedure call. Comandi con guardia.
Blocco critico. Tecniche di prevenzione e gestione del blocco critico.
Sistemi distribuiti. Modello cliente-servitore. RPC in ambiente distribuito. Sincronizzazione, mutua esclusione e coordinamento distribuiti.
Thread e processi leggeri. Supporti per il multithreading in Solaris e Linux.

Attività d'esercitazione
Esercitazioni in laboratorio relative alla programmazione di sistema in C/C++ nei sistemi operativi UNIX e Linux ed ai mecanismi per la concorrenza del linguaggio Java.

Modalità d'esame
L'esame è costituito da tre parti da svolgere in sequenza: una prova di programmazione in ambiente C++/UNIX (che può essere svolta in itinere), una prova scritta, ed una prova orale. Alla prova orale è ammesso solo chi ha superato la prova di programmazione e quella scritta.

Propedeuticità
Sistemi operativi A.

Testi consigliati
A.S. Tanenbaum, I moderni sistemi operativi, seconda edizione, Jackson Libri, 2002.
A. Silbershatz, P.B. Galvin, G. Gagne, Operating Systems Concepts with Java, John Wiley and Sons, 2003.
S.J. Hartley, Concurrent Programming - The Java Programming Language, Oxford University Press, 1998.

 
stampa il programma ~ torna indietro