Exercices

publicité
Exercice1
Les algorithmes distribués vus en cours respectent tous le même «modèle» (template) représenté par
l’algorithme1.Voirlesslides12–15delaprésentationdesalgorithmesdistribués.
Cond1,Cond2,…Condnsontdesconditionsbooléennes.M1,M2,…Mnsontdesmessagestransmisentreles
différentsnœudsduréseau.Achaqueitération,l’algorithmeeffectue/traiteuneseuleréceptionmêmesi
plusieursmessagessontdisponibles.
Task_t
Faireuntraitementd’initialisation
Envoyerunmessageàunsousensembledevoisins
Répeter
Alaréceptiond’unmessageM1d’unouplusieursvoisinset(Cond1)
Faireuntraitement
Envoyerunmessageàunsousensembledevoisins
ou
Alaréceptiond’unmessageM2d’unouplusieursvoisinset(Cond2)
Faireuntraitement
Envoyerunmessageàunsousensembledevoisins
ou…
Alaréceptiond’unmessageMnd’unouplusieursvoisinset(Condn)
Faireuntraitement
Envoyerunmessageàunsousensembledevoisins
Jusqu’à(uneconditiondefin)
Algorithme1:Modèledesalgorithmesdistribués
L’objectifdecetexerciceestdefairelacorrespondance(matching)entrelemodèledécritparl’Algorithme
1etlesalgorithmessuivants:
•
Algorithmebraodcastparvagues,avecaccuséderéception
•
Algorithmedeconstructiond’arbresderecouvrementenlargeurd’abord
Pour chacun de ces deux algorithmes, précisez pour chaque ligne du modèle (Algorithme 1), le bloc de
code sources correspondant. Précisez aussi les conditions: Cond1, Cond2, etc. ainsi que les conditions
d’arrêt.
1
Exercice2:
L’algorithme2représentelaversionsynchronedel’algorithmedupluscourtchemin.Cetalgorithmeest
incompletpuisqu’ilneprécisepaslaconditiond’arrêt.
-
MSGi(0)={};
-
Pour(touslesnœudsdeN)faireenvoyerseti(0)auxvoisinsvi
-
t=1;
-
Pour(chaqueréceptiondeMSGi(t-1))faire
//t>0
o
seti(t)={};
o
Pour(chaquesetj(t-1)appartenantàMSGi(t-1))faire
§
Pourchaquenœudnkappartenantàseti(t-1)faire
•
Si(disti(k)>t)alors
o
disti(k)=t;
o
firsti(k)=nj;
o
seti(t)=seti(t)+{nk}
o
Envoyerseti(t)àtouslesvoisinsdeni(ensemblevi)
o
t=t+1;
Algorithme2
1.
Complétezcetalgorithmeenprécisantlaconditiond’arrêttellequevueencours.
2.
Ecrivezl’algorithmecorrespondantautexteengrasdansl’algorithme2.
3.
Pour améliorer les performances de l’algorithme 2, l’une des idées consiste à réduire, dans la
limite du possible, le nombre d’itérations exécutées. L’idée est de revoir la condition d’arrêt.
Expliquezcomment?Ecrivezlanouvelleversiondecetalgorithme.
4.
Version asynchrone. Dans l’algorithme 2, la variable t est considérée comme une horloge
communeàtouslesnœudsduréseau.Danscettequestion,onseproposededéfinirunehorloge
parvoisin(auniveaudechaquenœud).L’objectifestd’éviterl’attendredesmessagesdetousles
voisins avant de commencer le traitement. Partant de cette idée (une horloge par voisin),
proposezunedémarchevisantàconcevoiruneversionasynchronedel’Algorithme2.
Exercice3
On dispose d’un réseau freenet composé de cinq nœuds: A, B, C, D, E. Les contenus des entrepôts de
chaquenœudsontlessuivants:
A
B
C
D
E
(50,B)
(20,C)
(100,C)
(5,D)
(50,B)
(200,D)
(30,E)
(50,B)
(1000,A)
(30,E)
(100,C)
(10,D)
(20,C)
(10,D)
(1000,A)
(50,B)
(200,D)
2
Lesentrepôtscontiennentdescouples(c,n):lenœudnestlepropriétairedudocumentdontlacléestc.Si
l’entrepôtd’unnœudxcontientlecouple(c,n),cecisignifiequexdétientunecopiedudocumentdontla
cléestc.
Question1
Représentezlesconnexionsfreenetdeces5nœudsA,B,C,D,E.
Question2
Unutilisateurlanceunerequêtederecherched’undocumentdontlacléestégaleà5àpartirdunœuda.
Donnez le circuit que va effectuer cette requête. Précisez l’ordre chronologique de passage de cette
requêteàtraverslesnœudsqu’ellevatraverseretdonnezlenouveaucontenudesdifférentsentrepôts.
Question3
En prenant en considération les nouveaux contenus des entrepôts, donnez le circuit qu’effectuerait une
requête de recherche du même document (clé 5) lancée à partir du nœud E. Précisez l’ordre
chronologiquedepassagedecetterequêteàtraverslesnœudsqu’ellevatraverser.
3
Téléchargement