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.

Testi d'approfondimento

Copia delle diapositive presentate a lezione disponibili sulla pagina web del corso.
G.R. Andrews, Foundations of Multithreaded, Parallel, and Distributed Programming, Addison-Wesley, 2000.
D. Lea, Concurrent Programming in Java, Second edition, Addison-Wesley, 2000.


Ultimo aggiornamento: 09-01-2004


Chiudi la finestra