3.8 CONCLUSION
D'après ces courbes on peut dire qu'on a
arrivé à une performance très acceptable en utilisant
toutes ces amélioration, il est clair que les résultats obtenus
avec l'amélioration 3 sont les meilleurs car cette
dernière amélioration utilise les améliorations
précédentes.
3.9 LA TOLéRANCE AUX PANNES
La simulation réalisée montre bien la
performance de notre algorithme, dans cet algorithme nous avons supposé
que les sites ne tombent pas en panne, mais dans la réalité le
système peut souffrir des éventuelles pannes, c'est la raison
pour laquelle nous avons pensé à intégrer la
tolérance aux pannes dans l'algorithme A3 qui a
donné les meilleurs résultats afin d'exploité sa
performance.
3.9.1 L'idée de base
Dans notre algorithme nous avons deux types de sites,
les sites simples et les sites racines, les informations nécessaires
pour la gestion des accès à la section critique se trouvent au
niveau des racines. Donc la panne qui peut poser un problème est la
panne de l'une des racines, les sites simples n'auront pas une influence sur le
comportement du système s'ils tombent en panne, il nous faut donc
d'avoir un moyen permettant de préserver les informations détenus
par les racines pour pouvoir les récupérer en cas de
panne.
L'idée de base de notre algorithme consiste
à désigner un site particulier dans l'arbre appelé
Sous_Racine. Le rôle de ce site consiste à stocker une copie
dupliquée des informations qui se trouvent au niveau de sa racine, ces
informations sont envoyées par la racine vers son Sous_Racine
après chaque mise à jour, en cas de panne d'une racine, les
informations stockées au niveau du Sous_Racine lui permettent de prendre
la place de la racine sans aucun problème et donc le système
continue à fonctionner normalement.
Le choix du Sous_Racine se fait en utilisant les
identités, on va choisir le site ayant la plus petite identité
dans l'arbre.
Si un Sous_Racine tombe en panne, la racine va
désigner tout simplement un nouveau Sous_Racine.
3.9.2 Description de l'algorithme
3.9.2.1 Les variables locales
Les sites vont utilisés les mêmes
variables locales sauf la racine qui va utiliser une nouvelle variable locale
(Sous_racine), tel que pour une Racinei, Sous_Racinei
= i+K. Si le Sous_Racine tombe en panne,
Sous_Racinei devient i+2K.
3.9.2.2 Les messages utilisés
Dans cette version on utilise les mêmes messages de
l'ancien algorithme et on ajoute deux nouveaux messages.
- Information : ce message contient les valeurs des
variables locales de la racine qui permettent au Sous_Racine de prendre la
relève en cas de panne de la racine, ces
informations sont : les identités des voisins
gauche et droit, le nombre de jetons libres et présents, ainsi que la
file d'attente Demandeursi.
- Nouveau_Racine (i, j) : envoyé par le
Sous_Racine j en cas d'une panne de la racine pour informer ces fils
de l'arbre ainsi que ces voisins qu'il va prendre la place de leur racine
originale.
|