| 
       Corso
di Sistemi Concorrenti e Distribuiti Corso di Laurea Magistrale in Informatica Università di Padova, a.a. 2009/10 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 2009 (offerto da AdaCore)
| Settimana | Data | Lezione | Contenuto | Materiale didattico | 
| Sistemi concorrenti | ||||
| 1 | 6 ottobre | 
      1 | Lezione: Programmazione
concorrente Esempio 1: 3 modi di programmare il sistema visto a lezione Esempio A: Il modulo "Calendario" Esempio B: Il modulo "Tempo Reale"  | 
      1.§1-2 | 
| 8 ottobre | 
        | 
      Assenza del docente | 
      ||
| 10 ottobre | 
    ||||
| 2 | 13 ottobre | 
      2 | 
      Lezione: Communicazione
tra processi in un
sistema
concorrente Si svolgano gli esercizi 1-3 descritti nel materiale di lezione  | 
      1.§3 | 
| 15 ottobre | 
      3 | 
      Lezione: Un
modello di concorrenza concreto Esercizio 4: "Il crivello di Eratostene". Compilare, eseguire e analizzare le caratteristiche salienti del programma concorrente proposto per la realizzazione dell'algoritmo Esercizio 5: descritto nel materiale di lezione Esercizio 6: "Il barbiere che dorme" Esercizio 7: "I filosofi a cena"  | 
      1.§4 | |
| 16 ottobre | 
      4 | 
      Lezione: Il
modello  rendezvous Esempio:"Il crivello di Eratostene rivisitato"  | 
      1.§5 | |
| 3 | 20 ottobre | 5 | 
    ||
| 22 ottobre (in aula 1A/150)  | 
      6 | 
      Lezione: Estensioni
del modello rendezvous  Esercizio 8: "Il crivello di Eratostene ter": compilare, eseguire e commentare tutte le differenze strutturali del programma proposto rispetto alla soluzione esaminata nell'esercizio 4 Esercizio 9: "I filosofi a cena - soluzione rivisitata"  | 
      1.§6 | |
| 23 ottobre | 
      7 | 
      
      Lezione: Risorse protette Esempio: "Controllo di accodamento" Per approfondire: Per Brinch Hansen: "Structured Multiprogramming" (CACM, 1972) Per studio personale: astrazioni realizzabili mediante risorsa protetta 1: semaforo 2: segnali persistenti 3: segnali transitori 4: messaggi in diffusione 5: eventi 6: barriere  | 
       1.§7 | 
    |
| 4 | 27
ottobre | 
      8 | 
    ||
| 29
ottobre | 
      9 | 
      Lezione di
recupero | 
      ||
| 30 ottobre | 
      10 | 
      Lezione: Criteri
di
sincronizzazione Esempio: "Allocazione di risorse" Esercizio 10: Migliorare la soluzione proposta nell'esempio "Allocazione di risorse" risolvendone il problema di inefficienza secondo le indicazioni fornite nel testo Esercizio 11: Si risolva il problema illustrato a pagina 14 della lezione C07 usando il modello di concorrenza sin qui illustrato, provando poi a realizzare la stessa semantica usando un linguaggio di programmazione alternativo a piacere. Si raffrontino poi le soluzioni ottenute 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 | 3 novembre | 
      11 | Esempio: "Sistema
ferroviario" Esercizio 12: Analizzare la soluzione mostrata nell'esempio "Sistema ferroviario" e discussa alle pagine 15-17 della lezione C07, e realizzare la stessa semantica concorrente utilizzando un linguaggio alternativo a piacere, discutendo i problemi riscontrati e le differenze eventualmente irriducibili  | 
      |
| 5 novembre | 
      12 | 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 | |
| 6 novembre | 
       13 | 
      Lezione: Trattamento di eventi asincroni | 1.§9 | |
| Per
approfondire: Interazione
tra concorrenza e
orientazione a
oggetti Il problema dell'inheritance anomaly  | 
      1.§10 | |||
| Sistemi distribuiti | ||||
| 6 | 10
novembre | 
      14 | 
      Lezione:
      Definizione
e
architettura
di
sistema
distribuito  | 
      2.§1-2 | 
    
| 11
novembre | 
      15 | 
    |||
| 12 novembre | 
      16 | 
      Lezione: Modelli di
comunicazione in un sistema distribuito | 
      2.§4 | 
    |
| 13
novembre | 
      17 | 
    |||
| 7 | 17
novembre | 
      18 | 
      Lezione: Processi
e concorrenza in un sistema
distribuito | 
      2.§3,10.2
       | 
    
| 18 novembre | 19 | 
      Per
approfondire: La
specifica stateless del server
NFS | 
    ||
| 19
novembre | 
      20 | 
      Lezione: Denominazione
di
entità | 
      2.§5 | |
| 20 novembre | 
      21 | 
    |||
| 8 | 24
novembre | 
      22 | Lezione: Sincronizzazione in un sistema distribuito | 2.§6.3-5 | 
| 25
novembre | 
      23 | 
      Per
approfondire: Uso
del
"distributed
snapshot" di Chandy e Lamport | 
    ||
| 26 novembre (rilevazione)  | 
      24 | 
      Lezione: Il
modello Java RMI Esempio: "Un semplice ripetitore"  | 
      2.§10.3.4 | |
| 27 novembre | 
      25 | 
    |||
| 9 | 1 dicembre | 26 | 
      Lezione: Il
modello di distribuzione
nativo in Ada Esempio: Crivello di Eratostene in versione distribuita - codice  | 
      PolyORB (doc) PolyORB (lib)  | 
    
| 3 dicembre | 
      27 | 
      Lezione: Il
modello CORBA
       | 
      2.§10
       | 
    |
|   | 
      Esami | Specifica
del
progetto
didattico | 
        | 
    |
Liste di iscrizione all'esame verranno pubblicate sul sistema SIS nelle due settimane precedenti l'appello corrispondente.
I sessione (orale)
II sessione (orale)