Docente
|
GORLA DANIELE
(programma)
Il corso presenta le caratteristiche e i problemi basilari di ogni sistema concorrente (mutua esclusione, sincronizzazione, atomicità, deadlock/livelock/starvation, concorrenza senza mutua esclusione) e le relative soluzioni a livello implementativo (semafori, monitor, primitive di sistema, failure detectors, consensus object) (30 ore). Poi si studiano le nozioni di un linguaggio concorrente minimale chiamato CCS (modellamento di processi paralleli tramite sistemi di transizioni etichettate, semantica ad interleaving, sincronizzazione, non-determinismo, simulazioni tra processi) ed il relativo modello matematico, con differenti caratteristiche per la specifica e l'analisi di sistemi scritti in tale formalismo (30 ore).
M. Raynal: Concurrent Programming: Algorithms, Principles and Foundations. Springer, 2013. (chapters 1, 2, 3, 4, 5, 10, 14, 16 and part of 17). R. Milner. Communicating and Mobile Systems. Cambridge University Press, 1999. R. Cleaveland and S. Smolka. Process Algebra. In Encyclopedia of Electrical Engineering, John Wiley & Sons, 1999. R. Cleaveland and O. Sokolsky. Equivalence and Preorder Checking for Finite-State Systems. In "Handbook of Process Algebra," pp. 391-424, Elsevier, 2001.
|