![]() |
Sistemi
Concorrenti e Distribuiti Corso di Laurea Magistrale in Informatica Università di Padova, a.a. 2015/16 Docente: Tullio Vardanega |
Nell'ambito di entrambi i segmenti dell'insegnamento, il docente
proporrà allo studente esercizi da realizzare in proprio e poi discutere
in aula per sperimentare direttamente le problematiche progettuali e
realizzative, e i paradigmi di soluzione illustrati a lezione.
Settimana | Data | Lezione | Contenuto | Materiale didattico |
Sistemi concorrenti | ||||
2 |
9 ottobre |
1 | Lezione:
Requisiti della programmazione concorrente Esempio 1: Tre modi di programmare il sistema visto a lezione |
1.§1-2 |
3 |
12 ottobre |
2 |
||
14 ottobre |
3 |
Lezione:
Comunicazione tra processi in un sistema
concorrente Esempio 2: Soluzioni concorrenti al problema dei filosofi a cena |
1.§3 | |
16 ottobre |
4 |
Lezione: Un modello di concorrenza concreto Esercizio: "Master e dependent": Studiare il comportamento del programma concorrente dato Esercizio: "Il crivello di Eratostene". Compilare, eseguire e analizzare le caratteristiche salienti del programma concorrente proposto per la realizzazione dell'algoritmo |
1.§4 |
|
4 |
19 ottobre |
5 |
Continuazione lezione 4 | |
21 ottobre |
6 |
Lezione: Il modello rendez-vous Esempio 3:"Il crivello di Eratostene bis" |
1.§5 | |
23 ottobre |
7 |
Lezione:
Estensioni del modello rendez-vous Esercizio: "Il crivello di Eratostene ter". Compilare, eseguire e analizzare tutte le differenze strutturali del programma proposto rispetto alla soluzione precedente |
1.§6 | |
5 |
26 ottobre |
8 |
Continuazione lezione 7 |
|
28 ottobre | 9 | Lezione:
Risorse
protette Esempio 4: "Controllo di accodamento" Esempio 5: "Sistema produttore consumatore con bounded buffer" Esempio 6: "Il barbiere che dorme" Per approfondire: Per Brinch Hansen: "Structured Multiprogramming" (CACM, 1972) Per approfondire: Astrazioni realizzabili mediante risorsa protetta 1: semaforo 2: segnali persistenti 3: segnali transitori 4: messaggi in diffusione 5: eventi 6: barriere Per approfondire: soluzioni programmatiche per la condivisione di risorse |
1.§7 | |
30 ottobre |
10 |
Lezione: Criteri
di sincronizzazione Esempio 7: "Allocazione di risorse" Esercizio: Migliorare l'efficienza della soluzione dell'esempio 7 Per approfondire: Toby Bloom: "Evaluating Synchronization Mechanisms" (CACM, 1979) Per approfondire: Il modello di concorrenza in C# Per approfondire: Per Brinch Hansen sulla concorrenza in Java |
1.§8 | |
6 |
2 novembre |
11 |
Continuazione lezione 10 |
|
4 novembre |
12 |
Lezione (Esempio 8): "Sistema ferroviario" Esercizio: Analizzare la soluzione dell'esempio 8 e realizzare la stessa semantica concorrente utilizzando un linguaggio alternativo a piacere, discutendo i problemi riscontrati e le differenze eventualmente irriducibili |
|
|
6
novembre |
13 |
Lezione:
Correttezza temporale Esempio 9: "Controllo di deviazione locale" Esempio 10: "Pattern di architettura concorrente" Per approfondire: Definizione dei protocolli di priority inheritance Una critica alla priority inheritance Una risposta alla critica Un modello di riferimento per politiche di ordinamento |
|
|
|
|
|
Argomenti opzionali: Trattamento di eventi asincroni (1.§9) Interazione tra concorrenza e orientazione a oggetti Per approfondire: Il problema dell'inheritance anomaly |
1.§13-14 |
Sistemi distribuiti | ||||
7 |
9 novembre | 14 | Lezione: Cenni sulla virtualizzazione | |
11 novembre |
15 |
Lezione: Definizione
e architettura di sistema distribuito Per approfondire: Topologie di interconnessione |
2.§1-2 |
|
13 novembre |
16 |
Continuazione lezione
15 |
||
Questionario valutazione didattica | ||||
8 |
18 novembre | E |
Esercitazioni di ripasso, in aula | |
20 novembre | E |
Esercitazioni di ripasso, in aula | ||
9 |
23
novembre |
17 |
Lezione:
Modelli di comunicazione in un
sistema distribuito |
2.§4 |
25 novembre |
18 |
Continuazione lezione 17 Esempio 11: Trasparenza di distribuzione a livello linguaggio |
||
27 novembre |
19 |
Lezione: Processi e concorrenza in un
sistema distribuito Per approfondire: La specifica stateless del server NFS |
2.§3,10.2 | |
11 | 11 dicembre | 20 | Continuazione lezione 19 | |
12 |
14 dicembre |
21 |
Lezione: Denominazione di entità | 2.§5 |
16
dicembre (09:30-13:15) |
22-23 |
Continuazione lezione 21 Introduzione lezione 24 |
||
18 dicembre |
24 |
Lezione: Sincronizzazione
in un sistema distribuito Per approfondire: Uso del "distributed snapshot" di Chandy e Lamport |
2.§6.3-5 | |
13
|
8 gennaio |
25 |
Continuazione lezione 24 Esercitazione con Esempio 12: "Implementazione dell'algoritmo Chandy-Lamport" Per approfondire: Materiale di lezione @ Cornell University (Ken Birman) |
|
14 |
11 gennaio |
26 |
Lezione: Il
modello Java RMI Esempio 12: "Un semplice eco esposto al rischio di data race" |
2.§10.3.4 |
13 gennaio (09:30-13:15) |
27-28 |
Lezione:
Il modello di distribuzione
nativo in Ada Altri esempi d'uso di DSA: (1), (2) Per approfondire (uso): Ada Gems 84, 85, 87, 20 Per approfondire (implementazione middleware): GLADE, RT-GLADE Esempio 13: "Crivello di Eratostene in versione distribuita" - codice Per approfondire: YAMI4: un middleware per scambio messaggi in distribuito |
PolyORB | |
15 gennaio |
29 |
Lezione: Il
modello CORBA Per approfondire: CORBA Portable Object Adapter |
|
|
15 |
18 gennaio |
30 |
Seminario:
Cloud
computing |
L'esame si terrà per appuntamento, nei
periodi corrispondenti alle sessioni d'esame previste dal calendario accademico.