Syst`
emes et Algorithmes R´
epartis
Final de l’UV SR05 — Automne 2013 — jeudi 16 janvier 2014
Dur´
ee : 2h. Aucun document autoris´
e. Le bar`
eme est donn´
e`
a titre indicatif. Toutes les r´
eponses doivent ˆ
etre
argument´
ees. Le soin apport´
e`
a la copie, la clart´
e et l’orthographe des explications seront appr´
eci´
es. Les algo-
rithmes fournis doivent imp´
erativement ˆ
etre pr´
ec´
ed´
es d’une explication sur leur fonctionnement. Leur simplicit´
e
sera appr´
eci´
ee.
Probl`
eme 1 : (15,5 points)
On consid`
ere un syst`
eme r´
eparti non anonyme compos´
e de N sites S1, . . . , SNreli´
es par un r´
eseau full-duplex
selon une topologie quelconque mais fixe compos´
ee de Marˆ
etes. Le syst`
eme est asynchrone. Les num´
eros 1, ..., N
ne sont pas connus des sites eux-mˆ
emes et cette num´
erotation n’est utilis´
ee que pour l’´
etude. Les sites ne connaissent
pas non-plus le nombre total de sites Ndans le r´
eseau. Par contre, ils connaissent tous leur propre adresse adi.
Deux primitives sont disponibles pour les communications :
–envoyer(adresse destinataire ou ensemble d’adresses ou *, type du message, autres champs)
L’utilisation de * revient `
a r´
ealiser une diffusion `
a tous les voisins.
–recevoir(adresse ´
emetteur, type du message, autres champs)
Question 1-1 : (1,5 point)
On suppose qu’une communication (et son traitement applicatif) entre deux voisins n´
ecessite au plus
δunit´
es de temps. On note tila date de d´
emarrage du site Sisur l’horloge d’un observateur externe
inconnue des sites. L’algorithme ci-dessous s’ex´
ecute d`
es le d´
emarrage d’un site.
Quelle est la fonction de cet algorithme ? Que peut-on dire de la variable Vi`
a la date ti+ 2δ? Et `
a la date
max(t1, . . . , tN)+2δ?
Algorithme de la question 1-1 pour le site Si
Initialisation :
Vi← ∅
adi←adresse du site
D´
ebut :
envoyer(*, request )
R´
eception d’un message :
recevoir(ad, type )
si type == request alors
Vi←Vi∪ {ad}
envoyer(adi, ack )
sinon si type == ack
Vi←Vi∪ {ad}
fin si
Question 1-2 : (4 points)
On se situe maintenant apr`
es la date max(t1, . . . , tN) + 2δ. Chaque site Sidispose d’une variable tmpi,
r´
eguli`
erement mise `
a jour via un capteur local de temp´
erature.
´
Ecrire un algorithme qui permette `
aS1de calculer la moyenne des variables tmp du r´
eseau. On utili-
sera une vague, lanc´
ee via une garde Expiration timer calcul. Outre adi, Viet tmpi, les variables sui-
vantes seront utilis´
ees : adpi(pour adresse du parent), nvai(pour nombre de voisins attendus), somi(pour
somme), nbsi(pour nombre de sites) et moyi(moyenne).
Question 1-3 : (0,5 point)
L’algorithme pr´
ec´
edent est-il non uniforme, semi-uniforme ou uniforme ?
Question 1-4 : (2 points)
Pour faciliter le d´
eploiement de l’application, on souhaite maintenant que chaque site puisse d´
eclencher
l’algorithme pr´
ec´
edent et obtenir le r´
esultat, ´
evitant ainsi toute initialisation particuli`
ere pour le site S1.
Quelles sont les pr´
ecautions `
a prendre quant aux structures de donn´
ees locales et aux messages ? Modifier
l’algorithme en cons´
equence.