TP2 : Tolérance aux pannes "crash"

Dans les différents exercices de ce TP, les méthodes utilisées seront les mêmes que l'an dernier à quelques exceptions près :

  • Les canaux de communications sont numérotés de 0 à degree(p)-1 pour tout processus p.
  • Pour identifier les processus vous utiliserez la méthode Id() au lieu de l'attribut ID. Contrairement à ID, la méthode Id() identifie les processus avec des numéros généralement non-consécutifs.

Notez aussi que le nombre maximum de pannes est retourné par la fonction F().

Exercice 1.

  1. Complétez le code des noeuds dans le répertoire src/projects/SetFlooding afin d'implanter l'algorithme FloodSet vu en cours.
  2. Testez vos solutions avec 30 noeuds. Vous testerez 3 types de scénarios: (i) les valeurs proposées choisies aléatoirement, (ii) toutes les valeurs proposées égales à 0 et (iii) toutes les valeurs proposées égales à 1. Vous testerez ces scénarios avec différentes valeurs de F(). Pour cela, modifiez de la balise F dans le fichier Config.xml (au niveau de custum). Enfin, testez également plusieurs fonctions de décision.

Exercice 2.

  1. Complétez le code des noeuds dans le répertoire src/projects/BenOr afin d'implanter l'algorithme de Ben-Or vu en cours.
  2. Testez vos solutions avec 10 noeuds. Vous testerez 3 types de scénarios: (i) les valeurs proposées choisies aléatoirement, (ii) toutes les valeurs proposées égales à 0 et (iii) toutes les valeurs proposées égales à 1. Vous testerez ces scénarios avec différentes valeurs de F(). Pour cela, modifiez de la balise F dans le fichier Config.xml (au niveau de custum). Enfin, testez également plusieurs fonctions de décision.

Exercice 3.

  1. Complétez le code des noeuds dans le répertoire src/projects/FLP afin d'implanter l'algorithme pour les crashes initiaux vu en cours.
  2. Testez vos solutions avec 20 noeuds. Vous testerez 3 types de scénarios: (i) les valeurs proposées choisies aléatoirement, (ii) toutes les valeurs proposées égales à 0 et (iii) toutes les valeurs proposées égales à 1. Vous testerezégalement différentes valeurs de F(). Pour cela, modifiez de la balise F dans le fichier Config.xml (au niveau de custum).