NOM : PR ´
ENOM : 1
Universit´
e de Technologie de Compi`
egne
Syst`
emes et Algorithmes R´
epartis
Final de l’UV SR05 mardi 20 janvier 2004
-Dur´
ee : 2h
- Seul le polycopi´e de cours est autoris´e (pas de notes manuscrites, de livres, de TD, etc.).
- Toutes les r´eponses doivent ˆetre argument´ees.
- La simplicit´e des algorithmes sera appr´eci´ee.
- Si l’´enonc´e ´etait impr´ecis (et seulement dans ce cas-l`a), faire une hypoth`ese, l’´ecrire sur la copie et continuer en
l’admettant.
- Le bar`eme est donn´e `a titre indicatif.
- R´epondre directement sur la copie.
-´
Ecrire votre nom et pr´enom sur chacune des feuilles.
Probl`
eme 1 : (9,5 points)
On consid`ere un syst`eme r´eparti compos´e de Nsites S1. . . SN, et reli´es par des liens de communication
full-duplex
formant un r´eseau quelconque. Chaque site connaˆıt le nombre de ses voisins dans le r´eseau. L’en-
semble est mod´elis´e par un graphe orient´e sym´etrique.
Question 1-1 : (1,5 point)
´
Ecrire un algorithme qui construit une arborescence de diffusion enracin´ee sur le site S1en main-
tenant, sur chaque site, une variable parent qui indique le voisin parent dans l’arborescence.
Question 1-2 : (1,5 point)
Modifier l’algorithme pr´ec´edent pour que chaque site connaisse sa hauteur dans l’arborescence.
Question 1-3 : (1,5 point)
Modifier l’algorithme pr´ec´edent afin que l’initiateur soit averti apr`es que chaque site ait obtenu sa
hauteur.
Question 1-4 : (0,5 point)
`
A quelle condition sur les communications dans le r´eseau la hauteur d’un site Sidans l’arbre est
´egale `a la distance de S1`a Sidans le r´eseau ?
Question 1-5 : (1,5 point)
Modifier l’algorithme de la question 1-3 pour que la demi-vague arrˆete son exploration et remonte
vers l’initiateur si l’arbre atteint une hauteur de k, qui est une constante fix´ee par l’initiateur.
Question 1-6 : (1,5 point)
Modifier l’algorithme pr´ec´edent pour que chaque site connaisse le maximum des hauteurs de ses
fils (lui compris) dans l’arborescence.
Question 1-7 : (1,5 point)
Utiliser l’algorithme pr´ec´edent pour construire un algorithme silencieux qui calcule la distance de
chaque site `a l’initiateur dans le r´eseau, et qui pr´evient l’initiateur quand il est termin´e (terminaison
explicite).
Probl`
eme 2 : (10,5 points)
On consid`ere un syst`eme r´eparti compos´e de Nsites S1. . . SN, dans lequel chaque site Siex´ecute une
instance locale Appide l’application r´epartie App. Dans le cadre de cette application, les sites se partagent des
Universit´e de Technologie de Compi`egne. Final SR05 automne 2003. resp. : B. Ducourthial
2
ressources `a acc`es exclusif. L’exclusion mutuelle est g´er´ee par un algorithme de contrˆole r´eparti Ctl, constitu´e
d’une instance Ctlisur chaque site Si.
L’algorithme Ctlidoit r´epondre aux requˆetes de demande de section critique (DemSC) et de fin de section
critique (FinSC) ´emises par l’algorithme Appi. S’il poss`ede le privil`ege, alors l’algorithme Ctlir´epond au
message DemSC ´emis par Appipar un message d’accord (AccSC). Dans le cas contraire, il envoie une demande
DemPriv vers chacune des autres instances Ctlj(j6=i) de l’algorithme de contrˆole.
L’algorithme Ctlig`ere deux bool´eens : Privi(d´etention du privil`ege) et SCi(section critique en cours). Le
bool´een Priviest initialis´e via un processus d’´election, qui ne donne le privil`ege qu’`a un seul site : Priv
´election().
Question 2-1 : (1,5 point)
´
Ecrire l’algorithme de contrˆole Ctli. Lorsqu’il rec¸oit un message DemPriv ´emis par Ctlj, Ctlilui
transmet le privil`ege (avec un message de type DonPriv) s’il le poss`ede et s’il n’y a pas de section
critique en cours. Dans le cas contraire, il laisse sans suite la demande de Ctlj.
L’algorithme comporte les gardes suivantes : initialisation, r´eception demande de section critique,
r´eception fin de section critique, r´eception demande privil`ege, r´eception du privil`ege.
Question 2-2 : (1 point)
Quel est l’inconv´enient d’ignorer les demandes de privil`ege lorsqu’une section critique est en
cours ? Comment y rem´edier ? Pourquoi utilise-t-on alors les estampilles ?
Question 2-3 : (1,5 point)
Modifier l’algorithme de la question 2-1 de telle sorte qu’`a la fin de la section critique, le privil`ege
soit transmis au demandeur ayant adress´e la plus ancienne demande. On notera hil’horloge enti`ere
locale, et demandesila liste des estampilles des demandes rec¸ues pendant la section critique (et
uniquement celles-ci).
Question 2-4 : (1,5 point)
(a) Avec l’algorithme pr´ec´edent, pourquoi un site pourrait transmettre le privil`ege `a un site qui l’a
demand´e et qui a ´et´e servi depuis ?
(b) Expliquer comment ce probl`eme peut ˆetre r´esolu en utilisant un tableau TabPriv[1..N]de N
estampilles en guise de privil`ege (au lieu du bool´een Priv), et en notant dans TabPriv[j]l’estampille
du site Sjau moment o`u celui-ci donne le privil`ege (i.e., il envoie TabPriv `a l’´emetteur de la plus
ancienne demande).
Question 2-5 : (1,5 point)
Lorsque le privil`ege est sur le site Si, le tableau d’estampilles TabPriv est stock´e dans la variable
TabPrivi.
(a) Pourquoi peut-on utiliser un tableau TabDemi[1..N]d’entiers pour stocker les estampilles des
demandes rec¸ues pendant la section critique au lieu de la liste d’estampilles demandei?
(b) En utilisant TabDemiet TabPrivi, comment le site qui d´etient le jeton peut ´equitablement
d´eterminer le demandeur `a satisfaire ?
(c) Dans quel cas le privil`ege ne doit pas ˆetre transmis ?
Question 2-6 : (1,5 point)
Donner le code d’une proc´edure ChoixDem qui prend en argument les tableaux TabDemiet
TabPrivi, qui les compare, et qui retourne l’indice du site `a qui le privil`ege doit ˆetre transmis
(0si le privil`ege ne doit pas ˆetre transmis) : kChoixDem(TabDemi, TabPrevi).
Question 2-7 : (2 points)
Modifier l’algorithme de la question 2-3 en utilisant les tableaux TabDemiet TabPrivi, et la
proc´edure ChoixDem(), afin d’obtenir un algorithme d’exclusion mutuelle. Cet algorithme fonc-
tionne par transmission d’un privil`ege, mais ne n´ecessite pas l’´etablissement d’un anneau de contrˆole.
Universit´e de Technologie de Compi`egne. Final SR05 automne 2003. resp. : B. Ducourthial
1 / 2 100%