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

Docente: Tullio Vardanega 
(Ultimo aggiornamento: 28 aprile 2004 ore 14:50)

Presentazione del corso

Obiettivi

Il corso si propone di:
Il corso si compone di due segmenti complementari.
In uno 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'altro si prendono invece in esame modelli e paradigmi di programmazione concorrente, concentrandosi sulla concorrenza direttamente esprimibile a linguaggio (ossia senza ricorso a librerie di sistema), utilizzando Java ed Ada come linguaggi di sperimentazione.
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

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

16 ottobre
2
Lezione: Communicazione tra processi in un sistema concorrente
Si svolgano gli esercizi 1-3 descritti nel materiale di lezione
1.§3

17 ottobre
3
Lezione: Un modello di concorrenza concreto
Esercizio 4 "Il crivello di Eratostene": compilare, eseguire e commentare 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
22 ottobre
4
Lezione: Il modello rendezvous
1.§5

23 ottobre
5

24 ottobre 6 Lezione: Estensioni del modello rendezvous
Esercizio 8: "Il crivello di Eratostene rivisitato": 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
3 29 ottobre 7

30 ottobre
8
Lezione: Risorse protette
1.§7

31 ottobre
9
4
5 novembre
10
Lezione: Criteri di sincronizzazione
Esercizio 10: "Allocazione di risorse": migliorare la soluzione proposta 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
Esercizio 12: "Il sistema metrobus di Padova (?)": analizzare la soluzione mostrata (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.§8

6 novembre
11
Per studio personale: astrazioni realizzabili mediante risorsa protetta
Astrazione 1: semaforo. Astrazione 2: segnali persistenti. Astrazione 3: segnali transienti. Astrazione 4: eventi. Astrazione 5: messaggi in diffusione. Astrazione 6: barriere.
Lezione: Gestione di eventi asincroni
1.§9-10

7 novembre
12
Lezione: Correttezza temporale
1.§12



Per studio personale: interazione tra concorrenza ed orientazione ad oggetti
Sistemi distribuiti
5
12 novembre




13 novembre




14 novembre



6
19 novembre
13
Definizione ed architettura di sistema distribuito
2.§1

20 novembre
14
Modelli di comunicazione in un sistema distribuito 2.§2

21 novembre
15
7
26 novembre
16
Processi e concorrenza in un sistema distribuito 2.§3

27 novembre
17
Denominazione di entità 2.§4

28 novembre
18
Sincronizzazione tra processi in un sistema distribuito
Prima verifica
2.§5.3-5
8
3 dicembre
19
Il modello Java RMI - Esempio
2.§2.3

4 dicembre
20
Il modello di distribuzione in Ada - Esempio
GLADE

5 dicembre
21
Il modello CORBA - Esempio
Seconda verifica
2.§9.1

17 dicembre
7 gennaio
Esami


Valutazione didattica

L'Ateneno ha avviato in via sperimentale un servizio Internet per la rilevazione della valutazione della didattica da parte degli studenti. Il servizio resterà attivo fino al 15 novembre 2003. Gli studenti sono invitati a farne uso.

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 svolge in forma scritta ed orale.
La prova scritta consta di un numero di quesiti in forma di esercizio a risposta aperta, i quali richiedono la riflessione dello studente e la spiegazione articolata della risposta proposta. L'esito numerico in /30 della prova scritta viene classificato in 2 fasce di sufficienza: una fascia alta, con valutazione non inferiore a 26, che consente di confermare direttamente il voto; ed una fascia media, con valutazione non inferiore a 18, che comporta l'obbligo di sostenere un esame orale individuale.
Le due verifiche parziali poste in calendario a conclusione di ciascun segmento del corso concorrono a formare la valutazione dello studente, secondo modalità che verranno definite e divulgate prima dell'inizio del corso.

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)