SISTEMI DISTRIBUITI A.A. 2010/11 Prima prova intermedia

SISTEMI DISTRIBUITI A.A. 2010/11
Prima prova intermedia - 1/12/2010
Cognome___________________________________ Nome_______________________________
Matricola___________________________________
Domanda 1 (punti 7)
Si descrivano le caratteristiche del modello publish/subscribe in termini di architettura e comunicazione
supportata, discutendone i vantaggi della sua adozione in un sistema distribuito. E’ possibile realizzare un
sistema publish-subscribe in cui il routing dei messaggi sia basato su DHT? Si motivi la risposta,
evidenziando gli eventuali problemi individuati.
Domanda 2 (punti 6)
Si consideri l’URL http://spaceflight.nasa.gov/home/index.html e la richiesta di accesso a tale URL da
mylaptop.ce.uniroma2.it. Si assuma che il name server local sia dns.uniroma2.it. Si descriva come avviene il
processo di risoluzione del nome spaceflight.nasa.gov nel corrispondente indirizzo IP, evidenziando il
possibile uso di risoluzione ricorsiva o iterativa, caching e replicazione allo scopo di migliorare la scalabilità
e la tolleranza ai guasti.
Domanda 3 (punti 7)
Si descrivano gli algoritmo di Lamport distribuito e di Ricart-Agrawala per la mutua esclusione distribuita,
discutendone le somiglianze e le differenze. Perché in entrambi questi algoritmi si usa il clock logico scalare
e non il clock logico vettoriale? Cosa succede se un processo si guasta? Come si può gestire l’aggiunta di un
nuovo processo?
Domanda 4 (punti 7)
Si consideri il seguente problema di sincronizzazione per l’accesso esclusivo alla sezione critica.
Un’applicazione ha due tipi di thread (A e B) ed i thread di tipo A hanno maggiore priorità dei thread di tipo
B. Ciò significa che nessun thread di tipo B può acquisire la risorsa se un thread di tipo A sta aspettando.
Si presenti lo pseudocodice di una soluzione per il problema che garantisca le proprietà di safety e liveness.
Si indichino le variabili di sincronizzazione, l’entry protocol e l’exit protocol, spiegando quali funzioni e
costrutti dell’API Pthread possono essere usati per risolvere il problema.
Domanda 5 (punti 5)
Si consideri un sistema in cui il client comunica con il server tramite RPC. Il client continua ad inviare una
richiesta di operazione al server (ad esempio operation_x()) finché il server non risponde con il
risultato della richiesta. Quale tipo di semantica di comunicazione viene fornita in questo caso e quali
vantaggi e svantaggi presenta? Si spieghi come si deve realizzare il client ed il server per ottenere la
semantica individuata.