Programmazione Concorrente e Distribuita
a.a. 2006 - 2007
programma del corso
1. Concetti fondamentali di Programmazione Concorrente ([1],cap. 1e2)
 Algoritmo, Programma, Processo
 Processi Concorrenti
 Architettura di una macchina concorrente
2. Costrutti Linguistici per la Programmazione Concorrente ([1],cap. 3)
 Coroutines
 Fork Join
 Cobegin Coend
 Processi
3. Modello a Memoria Comune ([1], cap. 4)
 Semafori
 Regioni Critiche e Regioni Critiche Condizionali
 Monitor
 Path expression
 Linguaggi Concorrenti
4. Modello a Memoria Distribuita ([1], cap. 5)
 Caratteristiche Scambio di Messaggi
 Primitive Asincrone
 Primitive Sincrone
 Chiamate di Procedura Remota
 Linguaggi Concorrenti
5. Coordinazione in Sistemi Distribuiti ([2], cap. 18)
 Ordinamento degli Eventi
 Mutua Esclusione
 Atomicita`
 Controllo della Concorrenza
 Gestione del Deadlock
 Algoritmi di elezione
 Problema del Consenso
6. Approfondimento di Algoritmi distribuiti :
Algoritmi di M.E. e elezione ([3], cap. 2, pp. 19-37)
 Algoritmi di M. E. :
Algoritmo di Ricart e Agrawala/Suzuki Kasami
 Algoritmi di rigenerazione del token:
Algoritmo di Misra
 Algoritmi elettivi
 Algoritmo di Chang Roberts
 Algoritmo di Hirschberg e Sinclair
Algoritmi di gestione del deadlock ([3], cap. 3, pp. 53-59)
 Algoritmi di Rosenkrantz, Sterns e Lewis :
 Algoritmi di scoperta del deadlock:
 Deadlock per comunicazione
Algoritmo di Chandy, Misra e Haas
Algoritmi di terminazione ([3], cap. 4, pp. 67-69 e 78-81)
 Algoritmi di Misra
Algoritmi di consenso ([3], cap. 7, pp. 137- 149))
Testi
[1] Ancillotti - Boari. Principi e tecniche di Programmazione Concorrente
UTET LIBRERIA
[2] Silberschatz - Galvin. Operating System Principles. ADDISON WESLEY
4 ed.
[3] Raynal. Distributed Algorithms and Protocols. WILEY & SONS