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← ∅
adiadresse du site
D´
ebut :
envoyer(*, request )
R´
eception d’un message :
recevoir(ad, type )
si type == request alors
ViVi∪ {ad}
envoyer(adi, ack )
sinon si type == ack
ViVi∪ {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.
Question 1-5 : (2 points)
Afin de r´
eduire la complexit´
e en m´
emoire et en messages de la solution pr´
ec´
edente sans avoir `
a initialiser
un site particulier, on souhaite maintenant que seul le site d’adresse la plus petite termine la vague, les
autres ´
etant abandonn´
ees (extinction de vague). Ce site est appel´
e´
elu par la suite.
Expliquer le principe et donner l’algorithme. On utilisera une variable suppl´
ementaire ´
elui.
Question 1-6 : (3 points)
Le site d’adresse la plus petite doit maintenant r´
eguli`
erement calculer la moyenne des variables tmpi, en
r´
ealisant des vagues successives.
a) Expliquer pourquoi le nombre de messages serait r´
eduit si la vague progressait non pas sur toute la
topologie du r´
eseau mais sur un arbre couvrant uniquement.
b) Exprimer le nombre d’arˆ
etes dans l’arbre couvrant en fonction de N.
c) Exprimer le nombre de messages de la vague par arˆ
ete de l’arbre et par arˆ
ete n’appartenant pas `
a
l’arbre.
d) En d´
eduire le nombre de messages d’une vague classique et le nombre de messages ´
economis´
es en cas
d’utilisation d’un arbre couvrant.
Question 1-7 : (1 point)
Expliquer pourquoi une vague d´
etermine une arborescence couvrante. Modifier l’algorithme pr´
ec´
edent
de mani`
ere `
a ce que chaque site connaisse ses fils dans cette arborescence. On utilisera la variable Fi, qui
contient l’ensemble des adresses des fils de Sidans l’arborescence.
Question 1-8 : (1,5 point)
Compl´
eter l’algorithme pr´
ec´
edent de mani`
ere `
a ce que l’algorithme calcule r´
eguli`
erement la moyenne
des temp´
eratures (en r´
earmant le timer). Les vagues successives du site ´
elu utiliseront l’arborescence
couvrante d´
etermin´
ee lors de la premi`
ere ex´
ecution.
Probl`
eme 2 : (4,5 points)
On consid`
ere l’ex´
ecution r´
epartie repr´
esent´
ee sur la figure ci-dessous.
Question 2-1 :
Donner deux observations valides du point de vue de la causalit´
e.
Question 2-2 :
Donner les estampilles de chacune des actions. En d´
eduire une unique observation.
Question 2-3 :
Parmi les coupures C1,C2,C3et C4, dater celles qui sont coh´
erentes
a1
1a2
1a4
1
a1
2
a1
3
a2
2a3
2a4
2a5
2
a2
3a3
3a4
3a5
3
S1
S2
S3
a3
1
C1C2C3C4
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !