Corso di Sistemi Concorrenti e Distribuiti
Corso di Laurea Specialistica in Informatica
Università di Padova, a.a. 2004/05

Docente: Tullio Vardanega
(Ultimo aggiornamento: 6 luglio 2005 ore 11:25
[date recuperi])

Presentazione del corso

Obiettivi

Il corso si propone di:
Il corso si compone di due segmenti complementari.
Nel primo 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.
Nel secondo 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 ed i paradigmi di soluzione illustrati a lezione.

Propedeuticità obbligatorie strette

Architettura degli Elaboratori 2.

Materiale didattico

  1. Concurrency in Ada (Second edition)
    Alan Burns and Andy Wellings
    Cambridge University Press ISBN 0-521-62911-X
    (Questa edizione del libro, non ancora rinnovata, contiene alcuni errori ed inesattezze, di cui gli autori hanno fornito la correzione.)
  2. Distributed Systems - Principles and paradigms (International edition)
    Andrew S Tanenbaum, Maarten van Steen
    Pearson Education International ISBN 0-13-121786-0
Testo consigliato come utile complemento:

Calendario delle lezioni

Settimana
Data
Lezione Contenuto
Materiale didattico
Sistemi concorrenti
1
13 ottobre
1
Lezione: Programmazione concorrente
Esempio 1: 3 modi di programmare il sistema visto a lezione
Esempio 2a: Il modulo "ora del giorno"
Esempio 2b: Il modulo "tempo monotono crescente"
1.§2

14 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 ed 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
2
20 ottobre
4
Lezione: Il modello rendezvous
Esempio: "Il crivello di Eratostene rivisitato"
1.§5

21 ottobre
5
Lezione: Estensioni del modello rendezvous
1.§6

22 ottobre 6 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"

3 27 ottobre



28 ottobre




29 ottobre
7
Lezione: Risorse protette
1.§7
4
2 novembre
8
Lezione: Risorse protette
Esempio: "Controllo di accodamento"
1.§7

3 novembre
9
Lezione: Criteri di sincronizzazione
Esempio: "Allocazione di risorse"
1.§8

4 novembre

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


5 novembre

Per studio personale: astrazioni realizzabili mediante risorsa protetta
1: semaforo. 2: segnali persistenti. 3: segnali transienti.
4: messaggi in diffusione. 5: eventi. 6: barriere.

5
10 novembre
10
Lezione: Gestione di eventi asincroni
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
1.§9-10

11 novembre
11
Lezione: Correttezza temporale
Approfondimento: Un modello di riferimento per politiche di ordinamento
1.§12

12 novembre
12
Lezione: Interazione tra concorrenza ed orientazione ad oggetti
Approfondimento: Il problema dell'inheritance anomaly

Sistemi distribuiti
6
17 novembre
13
Lezione: Definizione ed architettura di sistema distribuito
2.§1

18 novembre
14
Lezione: Modelli di comunicazione in un sistema distribuito 2.§2

19 novembre
15
7
24 novembre
16
Lezione: Processi e concorrenza in un sistema distribuito 2.§3

25 novembre
17
Lezione: Denominazione di entità 2.§4

26 novembre
18
Lezione: Sincronizzazione tra processi in un sistema distribuito 2.§5.3-5
  Progetto didattico  
8
1 dicembre
19
Lezione: Il modello Java RMI
Esempio: Un semplice ripetitore
2.§2.3

2 dicembre
20
Lezione: Il modello di distribuzione nativo in Ada
Esempio: Crivello di Eratostene in versione distribuita (descrizione)
GLADE

3 dicembre
(in orario 9:30 - 12:00, stessa aula)
21
Lezione: Il modello CORBA
Esempio: Un semplice scambio di messaggi (Visibroker Borland Enterprise Server per Java)
2.§9.1
PolyORB

17 dicembre

14 gennaio

Esami
Per discussione del progetto (vedi modalità)


Note pratiche

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

Ricevimento studenti

Il ricevimento studenti si tiene (salvo diverso avvivo) in stanza 121 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

Liste di iscrizione all'esame verranno pubblicate sul sistema SIS nelle due settimane precedenti l'appello corrispondente.

I sessione (orale)

II sessione (orale)

III sessione (orale)