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 presentazione in modo completo le architetture dei moderni sistemi operativi, di introdurre i concetti principali dei sistemi concorrenti, e di rendere lo studente in grado di programmare applicazioni concorrenti in ambiente C++/UNIX, in linguaggio Java e mediante thread POSIX.

Programma

Architetture dei sistemi operativi. Gestione della memoria. Memoria Virtuale. Gestione dell'I/O. Gestione dei file. Scheduling della CPU. 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.
Sistemi distribuiti. Modello cliente-servitore. RPC in ambiente distribuito. Sincronizzazione, mutua esclusione e coordinamento distribuiti.
Thread e processi leggeri. La libreria POSIX per il multithreading. Le thread in Solaris e Linux.
Blocco critico. Tecniche di prevenzione e gestione del blocco critico.
Sistemi in tempo reale. Algoritmi di scheduling in tempo reale. Gestione della inversione di priorita'

Attività d'esercitazione

Oltre ad esemplificazioni in aula riferite ai sistemi operativi ed ai linguaggi concorrenti in uso, esercitazioni in laboratorio relative ai sistemi operativi UNIX e Linux, al linguaggio Java, alle thread POSIX.

Modalità d'esame

L'esame e' costituito da tre parti da svolgere in sequenza: un progetto da sviluppare durante il corso, una prova scritta al termine del corso o in una delle date ufficiali previste, ed una prova orale. Alla prova orale e' ammesso solo chi ha consegnato il progetto ed ha superato la prova scritta. Chi non svolge il progetto durante il periodo di lezione deve richiederlo al docente almeno un mese prima della prova scritta a cui intende presentarsi.

Propedeuticità

E' indispensabile, anche per chi proviene da lauree diverse, sapere utilizzare competenze equivalenti a quelle impartite in Sistemi operativi A.

Testi consigliati

A.S. Tanenbaum, I moderni sistemi operativi, seconda edizione, Jackson Libri, 2002.
G.R. Andrews, Foundations of Multithreaded, Parallel, and Distributed Programming, Addison-Wesley, 2000.
S.J. Hartley, Concurrent Programming - The Java Programming Language, Oxford University Press, 1998.

Testi d'approfondimento

Copia delle diapositive presentate a lezione.
D. Lea, Concurrent Programming in Java, Second edition, Addison-Wesley, 2000.
D. Butenhof, Programming with POSIX Threads, Addison-Wesley, 1997.


Ultimo aggiornamento: 09-02-2003


Chiudi la finestra