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

Docente: Tullio Vardanega
(Ultimo aggiornamento: 5 dicembre 2010 ore 20:50)
[inserito materiale settimana 8]

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

Sistemi Operativi.
Reti.

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 2010 (offerto da AdaCore)

Calendario delle lezioni

Settimana Data Lezione Contenuto Materiale didattico
Sistemi concorrenti
1 19 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
20 ottobre
2
Lezione: Communicazione tra processi in un sistema concorrente
Si svolgano gli esercizi 1-3 descritti nel materiale di lezione
1.§3
2
26 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: "I filosofi a cena"
1.§4
27 ottobre
(Per permettere lo svolgimento di una assemblea studentesca relativa all'organizzazione di iniziative in merito al DDL Gelmini, e su richiesta dei Rappresentanti degli studenti, le attività didattiche sono sospese dalle ore 12.30 alle ore 14.30.
L'Assemblea si svolgerà in Aula A "Nasini", via Loredan 6)
4
28 ottobre
5
Lezione: Il modello rendezvous
Esempio 1:"Il crivello di Eratostene rivisitato"
1.§5
29 ottobre
(14:30-17:15
2AB40)

6
3
2 novembre
7
Lezione: Estensioni del modello rendezvous
Esercizio 7
: "Il crivello di Eratostene ter": compilare, eseguire e commentare tutte le differenze strutturali del programma proposto rispetto alla soluzione esaminata nell'esercizio 4 e nell'esempio 1
Esercizio 8: "I filosofi a cena - soluzione rivisitata"
1.§6
3 novembre
8
Lezione: Risorse protette
Esempio 2: "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 novembre
9
4
9 novembre
10
Lezione: Criteri di sincronizzazione
Esempio 3: "Allocazione di risorse"
Esercizio 9: Migliorare la soluzione dell'Esempio 3 risolvendone il problema di inefficienza secondo le indicazioni fornite nel testo
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
10 novembre
11
Esempio 4: "Sistema ferroviario"
Esercizio 10: Analizzare la soluzione mostrata nell'esempio "Sistema ferroviario" e discussa alle pagine 15-17 della lezione 10 e realizzare la stessa semantica concorrente utilizzando un linguaggio alternativo a piacere, discutendo i problemi riscontrati e le differenze eventualmente irriducibili

11 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
12 novembre
(14:30-16:15
2AB45)

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
5
18 novembre
(14:00-15:30)
14/1
Recupero lezione 13

19 novembre
(09:30-11:15
2BC60)
14/2
Lezione: Definizione e architettura di sistema distribuito
2.§1-2
6
23 novembre
15
24 novembre
16
Lezione: Modelli di comunicazione in un sistema distribuito 2.§4
7
30 novembre
(lezione annullata causa sospensione della didattica)

17
Lezione: Processi e concorrenza in un sistema distribuito
Per approfondire: Cenni sulla virtualizzazione
Per approfondire: La specifica stateless del server NFS
2.§3,10.2
01 dicembre
18
02 dicembre
(13:30-17:15
2BC60

19
Lezione: Denominazione di entità
2.§5
03 dicembre
(09:30-11:15
2BC60
14:30-16:15
2AB40)

20
Lezione: Sincronizzazione in un sistema distribuito
Per approfondire: Uso del "distributed snapshot" di Chandy e Lamport
2.§6.3-5
8
06 dicembre
(12:00-15:00
1BC50)

21
Lezione: Il modello Java RMI
2.§10.3.4
07 dicembre
22 Lezione: Il modello di distribuzione nativo in Ada
Esempio 5: Crivello di Eratostene in versione distribuita - codice
PolyORB (doc)
09 dicembre
23
10 dicembre
(09:30-11:15
2AB60
14:00-15:30
2AB40)

24
Lezione: Il modello CORBA
Riepilogo finale
2.§10

  Esami Specifica del progetto didattico

Note pratiche

Le lezioni indicate in calendario si terranno con l'orario e la collocazione seguenti:

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