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