Syst`
emes et Algorithmes R´
epartis
Final de l’UV SR05 — Automne 2014 — vendredi 16 janvier 2015
Dur´
ee : 2h00. Aucun document autoris´
e.
Le bar`
eme est donn´
e`
a titre indicatif.
Toutes les r´
eponses doivent ˆ
etre argument´
ees. Les algorithmes fournis doivent imp´
erativement ˆ
etre pr´
ec´
ed´
es d’une
explication sur leur fonctionnement. Leur simplicit´
e sera appr´
eci´
ee.
Le soin apport´
e`
a la copie, la clart´
e et l’orthographe des explications seront pris en compte.
Probl`
eme 1 : (15 points)
On consid`
ere un syst`
eme r´
eparti Scompos´
e de N sites S1, . . . , SNreli´
es par un r´
eseau de topologie quelconque
mais fixe. Une fonction de routage (non d´
etaill´
ee ici) permet d’adresser un message depuis tout site Sivers tout autre
site Sjdans le r´
eseau.
Ce syst`
eme Sest le support d’une application r´
epartie Acompos´
ee d’une instance Aipar site Si. Certaines
instances sont actives d`
es le d´
epart. Lorsqu’une instance locale Aiest active, elle peut envoyer des messages `
a d’autres
instances Aj, ce qui les rend actives (si elles ne l’´
etaient pas d´
ej`
a). Une instance passive ne peut devenir active
spontan´
ement (sans r´
eception de message). Par contre une instance active peut devenir spontan´
ement passive (fin des
traitements locaux).
Pour d´
etecter la terminaison de l’application r´
epartie A, un protocole de contrˆ
ole Pest ins´
er´
e entre l’application
et le r´
eseau. Sur chaque site Si, l’instance locale Pide Pest en mesure de d´
eterminer si Aiest active et d’intercepter
les messages ´
emis ou rec¸us par Ai.
Question 1-1 : (1 point)
Expliquer pourquoi le syst`
eme Sinduit un anneau logique permettant de parcourir tous les sites succes-
sivement.
Question 1-2 : (2 points)
Proposer un algorithme utilisant cet anneau et des messages ne contenant qu’un entier pour ´
elire un site
parmi ceux qui sont actifs. On compl´
etera l’algorithme suivant. La fonction is active() retourne vrai si
l’instance locale de l’application Aiest active, faux sinon.
Algorithme 1 :Pi
Initialisation :
´
Elui←+∞
Actifi←is active()
Aidevient passif :
Actifi←faux
´
Elui== +∞et Actifi== vrai :
.
.
.
R´
eception d’un message de type “´
election” :
.
.
.
Question 1-3 : (2 points)
Compl´
eter l’algorithme pr´
ec´
edent afin que chaque instance Pidu protocole de contrˆ
ole g`
ere un tableau Vi
tel que Vi[k]repr´
esente le nombre de messages ´
emis par Aivers Aket Vi[i]repr´
esente l’oppos´
e du nom-
bre de messages rec¸us par Ai. Attention, le protocole Pdoit maintenant r´
ealiser une tˆ
ache dynamique.
On ajoutera les gardes suivantes `
a l’algorithme de Pi:
R´
eception d’un message de Aipour Aj:
.
.
.
R´
eception d’un message de Pjpour Pide type “appli” :
.
.
.