3.5 AMéLIORATION N°2 (ANNULER LA
MéTHODE {UTILISER LE PLUS COURT CHEMIN})
Pour mettre en place cette amélioration, on
applique les modifications suivantes :
2
3
4
5
6
7
8
Procédure : Réception de Requête
(Jeton, j)
2
|
Amélioration
1 Début
N° 2
Si Jetons_libresi > 0
alors
|
3
|
|
Envoyer Aide (Jeton, j) à j;
|
4
|
|
Jetons_libresi ?-
Jetons_libresi - 1;
|
5
|
|
Jetons_presentsi ?-
Jetons_presentsi - 1;
|
6
|
Sinon
|
7
|
|
Si Jetons_presentsi >
Longueuri alors
|
8
|
|
|
Demandeursi ?- Demandeursi +
{j};
|
9
|
|
|
Longueuri ?- Longueuri +
1;
|
10
|
|
Sinon
|
11
|
|
Envoyer Requête (Jeton, j) à
voisin_droiti;
|
12
|
|
Finsi
|
13
|
Finsi
|
14 Fin
Procédure : Réception de Recherche (Jeton,
j)
Amélioration N° 2
1 Début
Si Jetons_libresi > 0
alors
Envoyer Aide (Jeton, j) à j;
Jetons_libresi ?-
Jetons_libresi - 1;
Jetons_presentsi ?- Jetons_presentsi -
1;
Sinon
Envoyer Recherche (Jeton, j) à
voisin_droiti; Finsi
2
3
4
5
6
7
8
9 Fin
Procédure : Réception de Aide (Jeton,
j)
Amélioration N° 2
1 Début
Si Longueuri > 0
alors
Jetons_presentsi ?-
Jetons_presentsi + 1; Jeton Reçu
();
Sinon
Jetons_libresi ?-
Jetons_libresi + 1;
Jetons_presentsi ?- Jetons_presentsi +
1;
Finsi
9 Fin
2
3
4
5
6
7
8
9
10
11
12
13
14
Procédure : Jeton Reçu ()
Amélioration N° 2
1 Début
Q ?-
la_tete_de_la_file_d'attente;
Supprimer la tête de la file d'attente;
Longueuri ?- Longueuri - 1;
Si Q = Site_Racine
alors
Envoyer Aide (Jeton, j) Q;
Jetons_presentsi ?-
Jetons_presentsi - 1;
Finsi
Si Q = Site_Simple
alors
Envoyer Accord (Jeton) à Q;
Finsi
Si Q = i
alors
Etati ?-En SC;
< Entrer en Section Critique>
Finsi
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Fin
Procédure : Libération de la Section
Critique par une racine
Amélioration N° 2
1 Début
Etati ?-Dehors;
Si Longueuri > 0
alors
Q ?-
la_tete_de_la_file_d'attente;
Supprimer la tête de la file d'attente;
Longueuri ?- Longueuri - 1;
Si Q = Site_Racine
alors
Envoyer Aide (Jeton, j) Q;
Jetons_presentsi ?-
Jetons_presentsi - 1;
Finsi
Si Q = Site_Simple
alors
Envoyer Accord (Jeton) à Q;
Finsi
Sinon
Jetons_libresi ?-
Jetons_libresi + 1;
Finsi
16
17 Fin
3.5.1 Résultats et interprétations
Cette nouvelle amélioration a été
validée par une simulation qui nous a permis d'obtenir les
résultats suivants :
3.5.1.1 Variation du nombre de requêtes
(a)
(b)
Figure 3.12 -
Influence du nombre de requête sur le NMM et TAM. 3.5.1.2
Variation du nombre de ressources
(a)
(b)
Figure 3.13 - Influence du nombre de ressource sur le
NMM et TAM. 3.5.1.3 Variation du nombre de sites
(b)
Figure 3.14 -
Influence du nombre de site sur le NMM et TAM.
L'utilisation de cette amélioration a
donnée des résultats presque identiques avec les autres
algorithmes, cela peut être justifié par la taille limitée
de l'anneau, l'avantage de cette amélioration peut apparaître avec
plusieurs racines et plusieurs demandes à la fois. Par conséquent
il nous reste toujours à résoudre le problème de NMM
élevé.
Un problème : (nombre moyen de
messages)
Puisque l'amélioration précédente
n'avait pas une grande influence sur la performance de notre algorithme, nous
devons penser à une nouvelle amélioration permettant de minimiser
le NMM.
Lorsqu'on remarque le comportement de notre algorithme
on constate que le NMM élevé est causé par le mouvement
perpétuel et inutile des messages Requête et Recherche surtout
lorsqu'il y a plusieurs demandes, si on arrive à éviter ce
mouvement perpétuel on pourra minimiser le NMM.
Une solution proposée
Puisque les demandes sont sauvegardées au
niveau des racines, il est inutile de continuer à tourner dans l'anneau
car le jeton ne sera envoyé qu'après sa libération, pour
cela le message Requête et Recherche seront arrêtés s'ils
arrivent à la racine qui les a initié.
|