![]() |
Sistemi Concorrenti
e Distribuiti Corso di Laurea Magistrale in Informatica Università di Padova, a.a. 2014/15 Docente: Tullio Vardanega |
Nell'ambito di entrambi i segmenti del corso, il docente proporrà allo
studente esercizi da realizzare in proprio in laboratorio per
sperimentare direttamente le problematiche progettuali e realizzative, e
i paradigmi di soluzione illustrati a lezione.
Settimana | Data | Lezione | Contenuto | Materiale didattico |
Sistemi concorrenti | ||||
1 |
2 ottobre |
1 | Lezione:
Programmazione
concorrente Esempio 1: tre modi di programmare il sistema visto a lezione |
1.§1-2 |
2 | 6 ottobre |
2 |
||
7 ottobre (3h) |
3 |
Lezione:
Comunicazione
tra processi in un sistema concorrente Esempio 2: soluzioni concorrenti al problema dei filosofi a cena Esercizio: Quelli descritti nel materiale di lezione |
1.§3 | |
3 |
13 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
|
14 ottobre |
5 |
Continuazione lezione 4 | ||
16 ottobre (3h) |
6 |
Lezione:
Il
modello rendez-vous Esempio 3:"Il crivello di Eratostene bis" |
1.§5 | |
4 |
20 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 |
21 ottobre (3h) |
8 |
Continuazione lezione 7 |
||
23 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 | |
5 |
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 |
3 novembre |
11 |
Continuazione lezione 10 |
|
4 novembre (3h) |
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 (3h) |
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 |
10 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 |
||
8 |
17 novembre | E |
Esercitazioni di ripasso, in aula | |
20 novembre | E |
Esercitazioni di ripasso, in aula | ||
9 |
24
novembre |
17 |
Lezione:
Modelli
di comunicazione in un sistema distribuito |
2.§4
|
25 novembre (3h) |
18 |
Continuazione lezione 17 Esempio 11: Trasparenza di distribuzione a livello linguaggio |
||
Questionario valutazione didattica |
||||
10 |
01 dicembre (15:30-17:45) |
19 |
Lezione:
Processi
e concorrenza in un sistema distribuito Per approfondire: La specifica stateless del server NFS |
2.§3,10.2 |
11 |
11 dicembre (15:30-16:30) |
20 |
Lezione:
Denominazione
di entità |
2.§5 |
12 |
15 dicembre |
21 |
Continuazione lezione 20 | |
16 dicembre (15:30-16:15) |
22 |
Lezione:
Sincronizzazione
in un sistema distribuito Per approfondire: Uso del "distributed snapshot" di Chandy e Lamport |
2.§6.3-5 | |
18
dicembre (3h) |
23 |
Continuazione lezione 22 Esercitazione con Esempio 12: "Implementazione dell'algoritmo Chandy-Lamport" Per approfondire: Materiale di lezione @ Cornell University (Ken Birman) |
||
14 |
8 gennaio |
24 |
Lezione:
Il
modello Java RMI Esempio 12: "Un semplice eco esposto al rischio di data race" |
2.§10.3.4 |
15
|
12 gennaio |
25 |
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 |
PolyORB |
13 gennaio |
26 |
Continuazione lezione 25 Esempio 13: "Crivello di Eratostene in versione distribuita" - codice Per approfondire: YAMI4: un middleware per scambio messaggi in distribuito |
||
15 gennaio (3h) |
27 |
Lezione:
Il
modello CORBA Per approfondire: CORBA Portable Object Adapter |
|
|
16 |
19 gennaio |
28 |
Approfondimenti, ripasso generale e assegnazione
prova finale |
|
L'esame si terrà per appuntamento, nei
periodi corrispondenti alle sessioni d'esame previste dal
calendario accademico.