![]() |
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.
Settimana | Data | Lezione | Contenuto | Materiale didattico |
Sistemi concorrenti | ||||
1 |
1 ottobre |
1 |
Lezione:
Programmazione
concorrente Esempio 1: tre modi di programmare il sistema visto a lezione |
1.§1-2 |
2 ottobre |
2 |
|||
3 ottobre |
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 |
14 ottobre |
4 |
Continuazione lezione 3 |
|
15 ottobre |
5 |
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
|
|
16 ottobre |
6 |
Continuazione lezione 5 |
|
|
17 ottobre |
7 |
Lezione:
Il modello
rendez-vous Esempio 3:"Il crivello di Eratostene bis" |
1.§5 |
|
4 |
21 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 |
22 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 | |
23 ottobre (3h) |
10 |
Continuazione lezione 9 Per approfondire: astrazioni realizzabili mediante risorsa protetta 1: semaforo 2: segnali persistenti 3: segnali transitori 4: messaggi in diffusione 5: eventi 6: barriere |
|
|
24 ottobre |
11 |
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 | |
5 |
28 ottobre |
12 |
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 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 |
|
31 ottobre |
13 |
Lezione:
Cenni sulla
virtualizzazione |
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 | ||||
7 |
11 novembre |
14 |
Lezione:
Definizione e architettura di
sistema distribuito Per approfondire: Topologie di interconnessione |
2.§1-2 |
12 novembre |
15 |
Continuazione lezione 14 |
||
13 novembre (3h) |
16 |
Lezione:
Modelli di comunicazione in un
sistema distribuito |
2.§4 | |
14 novembre |
17 |
Continuazione lezione 16 |
||
8 |
Questionario valutazione
didattica |
|||
18 novembre |
18 |
Continuazione lezione 16 Esempio 9: Trasparenza di distribuzione a livello linguaggio |
2.§4 | |
19 novembre (3h) |
19 |
Lezione:
Processi e concorrenza in un
sistema distribuito Per approfondire: La specifica stateless del server NFS |
2.§3,10.2 |
|
20 novembre (3h) |
20 |
Lezione:
Denominazione di
entità |
2.§5 | |
21 novembre |
21 |
Continuazione lezione 20 | ||
9 |
25 novembre |
22 |
Lezione:
Sincronizzazione in un sistema
distribuito Per approfondire: Uso del "distributed snapshot" di Chandy e Lamport |
2.§6.3-5 |
26 novembre (3h) |
23 |
Esercitazione con Esempio 10: " Implementazione dell'algoritmo Chandy-Lamport" |
|
|
27 novembre (3h) |
24 |
Lezione:
Il modello Java
RMI Esempio 11: "Un semplice eco esposto al rischio di data race" |
2.§10.3.4 | |
10 |
2 dicembre |
26 |
Lezione:
Il modello di distribuzione
nativo in Ada Per approfondire: Ada Gems 84, 85, 87, 20 |
PolyORB |
3 dicembre |
27 |
Continuazione lezione 26 Esempio 12: "Crivello di Eratostene in versione distribuita" - codice Per approfondire: YAMI4: un middleware per scambio messaggi in distribuito |
|
|
4 dicembre (3h) |
28 |
Lezione:
Il modello CORBA Per approfondire: CORBA Portable Object Adapter |
2.§10 | |
5 dicembre |
29 |
Ricapitolazione e assegnazione tema di prova
finale |
|
L'esame si terrà per appuntamento, nei periodi corrispondenti
alle sessioni d'esame previste dal
calendario accademico.