![]() |
Sistemi
Concorrenti e Distribuiti Corso di Laurea Magistrale in Informatica Università di Padova, a.a. 2012/13 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.
GNAT GPL edition 2012 (offerto da AdaCore)
Settimana | Data | Lezione | Contenuto | Materiale didattico |
Sistemi concorrenti | ||||
1 |
1 ottobre |
1 | Lezione:
Programmazione concorrente Esempio 1: 3 modi di programmare il sistema visto a lezione |
1.§1-2 |
2 ottobre |
2 |
|||
3 ottobre |
Assenza del docente | |||
4 ottobre |
3 |
Lezione:
Communicazione tra processi in un sistema
concorrente Esempio 2: soluzioni concorrenti al problema dei filosofi a cena Si svolgano su di esse gli esercizi descritti nel materiale di lezione |
1.§3 | |
2 |
8 ottobre |
4 |
Continuazione lezione 3 |
|
9
ottobre |
5 |
Lezione: Un
modello di concorrenza concreto Esercizio: "Il crivello di Eratostene". Compilare, eseguire e analizzare le caratteristiche salienti del programma concorrente proposto per la realizzazione dell'algoritmo |
1.§4
|
|
10 ottobre |
6 |
Continuazione lezione 5 |
||
11 ottobre |
7 |
Lezione:
Il modello rendez-vous Esempio 3:"Il crivello di Eratostene rivisitato" |
1.§5 |
|
3 |
15 ottobre |
8 |
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 |
16 ottobre |
9 |
Lezione: Risorse
protette Esempio 4: "Controllo di accodamento" - "Controllo di accodamento versione estesa" Esempio 5: "Sistema produttore consumatore con bounded buffer" Esempio 6: "Il barbiere che dorme" Per approfondire: Per Brinch Hansen: "Structured Multiprogramming" (CACM, 1972) |
1.§7 | |
17 ottobre |
10 |
Continuazione lezione 9 |
||
18 ottobre |
11 |
Continuazione lezione 10 Per approfondire: astrazioni realizzabili mediante risorsa protetta 1: semaforo 2: segnali persistenti 3: segnali transitori 4: messaggi in diffusione 5: eventi 6: barriere |
||
4 |
22 ottobre |
12 | 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 |
23 ottobre |
13 |
Continuazione
lezione 12 |
||
24 ottobre |
14 |
Esercitazione con 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 |
||
25 ottobre |
15 |
Lezione:
Correttezza temporale 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 |
1.§13-14 | |
|
Argomenti opzionali: Trattamento di eventi asincroni (1.§9) Interazione tra concorrenza e orientazione a oggetti Per approfondire: Il problema dell'inheritance anomaly |
|||
Sistemi distribuiti | ||||
5 |
29 ottobre |
16 |
Lezione: Cenni sulla virtualizzazione | |
30 ottobre |
17 |
Lezione: Definizione
e architettura di sistema distribuito Per approfondire: Topologie di interconnessione |
2.§1-2 |
|
31
ottobre |
18 |
Continuazione lezione 17 |
||
1 novembre |
Festività |
|||
7 |
12 novembre |
19 |
Lezione:
Modelli di comunicazione in un sistema
distribuito |
2.§4 |
13 novembre | 20 |
Continuazione lezione 19 Esempio 9: Trasparenza di distribuzione a livello linguaggio |
||
14 novembre |
21 |
Lezione: Processi
e concorrenza in un sistema distribuito Per approfondire: La specifica stateless del server NFS |
2.§3,10.2 |
|
15 novembre |
22 |
Continuazione lezione 21 | ||
16
novembre |
23 |
Lezione: Denominazione
di entità |
||
8 |
19 novembre |
24 |
Continuazione lezione 23 | 2.§5 |
20
novembre |
25 |
Lezione: Sincronizzazione in un sistema
distribuito Per approfondire: Uso del "distributed snapshot" di Chandy e Lamport |
2.§6.3-5 | |
21 novembre |
26 |
Esercitazione con Esempio 10: "Un modello di Chandy-Lamport" | ||
22 novembre |
27 |
Lezione:
Il modello Java RMI Esempio 11: "Un semplice eco esposto al rischio di data race" |
2.§10.3.4 | |
23
novembre |
28 |
Continuazione lezione 27 |
||
9 |
26 novembre |
29 |
Lezione: Il modello di
distribuzione nativo in Ada Per approfondire: Ada Gems 84, 85, 87 |
PolyORB |
27 novembre |
Assenza del docente Per approfondire: YAMI4: un middleware per scambio messaggi in distribuito |
|||
28 novembre |
30 |
Continuazione lezione 29 Esempio 12: "Crivello di Eratostene in versione distribuita" - codice |
||
29 novembre |
31 |
Lezione: Il
modello CORBA Per approfondire: CORBA Portable Object Adapter |
2.§10 | |
30 novembre |
32 |
Continuazione lezione 31 e riepilogo finale | ||
|
Esami | Specifica del
progetto didattico |
|
L'esame si terrà per
appuntamento, nei periodi corrispondenti alle sessioni d'esame
previste dal calendario
accademico.