logo
Sistemi Concorrenti e Distribuiti
Corso di Laurea Magistrale in Informatica
Università di Padova, a.a. 2012/13

Docente: Tullio Vardanega
(Ultimo aggiornamento: 24 novembre 2012 ore 20:55)
[pubblicato materiale settimana 9]

Presentazione del corso

Obiettivi

Il corso si propone di:
Il corso si articola in due segmenti sequenziali e complementari.
  1. Nel primo segmento si prendono in esame modelli e paradigmi di programmazione concorrente, concentrandosi sulla concorrenza direttamente esprimibile a linguaggio (ossia senza ricorso a librerie di sistema) utilizzando Ada e Java per studiarne e raffrontarne le tecniche di realizzazione concreta.
  2. Nel secondo segmento si affronta l'evoluzione architetturale tecnologica dei sistemi distribuiti, culminando nell'analisi di CORBA come paradigma di interconnessione di sistemi eterogenei secondo il modello cliente-servente.

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.

Propedeuticità obbligatorie strette

Materiale didattico

  1. Concurrent and Real-Time Programming in Ada
    Alan Burns and Andy Wellings
    Cambridge University Press ISBN 978-0-521-86697-2

  2. Distributed Systems - Principles and paradigms (Second edition)
    Andrew S Tanenbaum, Maarten van Steen
    Pearson Prentice Hall ISBN 0-13-239227-5

Strumenti di lavoro

GNAT GPL edition 2012 (offerto da AdaCore)

Calendario delle lezioni

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

Note pratiche

Le lezioni indicate in calendario si terranno con l'orario e la collocazione riportati sul sito del CCS di Informatica.

Ricevimento studenti

Il ricevimento studenti si tiene (per appuntamento) in stanza 400 il:

Modalità di esame

L'esame di profitto si svolgerà mediante realizzazione e discussione di un progetto di sistema concorrente e distribuito assegnato dal docente in concomitanza con la fine delle lezioni. La realizzazione del progetto potrà essere intrapresa in gruppi comprendenti fino ad un massimo di 3 componenti. La discussione del progetto realizzato sarà invece individuale e preceduta da una presentazione di esso da parte dello studente e/o del gruppo di appartenenza.

Calendario degli appelli d'esame

L'esame si terrà per appuntamento, nei periodi corrispondenti alle sessioni d'esame previste dal calendario accademico.

Valid HTML
          4.01 Transitional