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

Docente: Tullio Vardanega
(Ultimo aggiornamento: 30 novembre 2013 ore 19:45)
[inserito materiale lezioni 26-28]

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

Risorse

Calendario delle lezioni

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

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 a 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