Algorithme de Chang et Roberts
Nemo
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je dois coder en JAVA l'algorithme de Chang et Roberts mais je ne vois pas comment réaliser ce programme.
Voici les consignes qui nous ont été transmises :
L'algorithme de Chang et Roberts utilise un maillage en anneau unidirectionnel, où chaque
processus sait adresser un message à son voisin de gauche par la primitive envoyer_voisin_gauche.
Un ou plusieurs processus peuvent décider de lancer un protocole d’élection. Sur chaque site, on trouve les variables suivantes :
mon_numéro : entier constant qui donne l’identificateur du site ;
plus_grand : variable entière donnant à un instant donné le plus grand numéro de processus connu sur le site.
participant : variable booléenne initialisée à faux, qui passe à vrai dès que le processus est touché par l’algorithme d’élection.
vainqueur : variable entière qui, à la fin de l’exécution, aura pour valeur le plus grand des numéros, c’est-à-dire le numéro du processus élu.
Les messages sont de deux types :
1) les messages de type élection ; un processus envoie un tel message soit quand il décide de lancer une élection (il lui fait alors contenir son propre numéro), soit quand il devient participant (il calcule alors plus_grand et fait contenir au message cette valeur), soit quand, déjà participant, il vient d’incrémenter plus_grand (il lui fait alors contenir plus_grand).
2) les messages de type élu qui font circuler, après qu’il a été déterminé, le plus grand
numéro de processus ; un processus qui reçoit un message de type élection portant son numéro sait qu’il est celui de plus grand numéro et envoie le premier message de type élu ; ce message est alors retransmis en faisant le tour de l’anneau.
Un message de type élection n’est pas retransmis par un processus participant si le numéro porté par le message n’est pas supérieur au plus grand numéro déjà connu sur le site ; un tel principe s’appelle principe de l’extinction sélective.
J'ai naturellement déjà implémenté la classe Processus dans laquelle je définis les variables mentionnées plus haut.
J'ai aussi crée un arrayList de voisin dans le constructeur (je ne sais pas si c'est correct ou pas) dans laquelle je renseigne l'unique voisin d'un Processus.
Je suppose aussi qu'il faut implémenter une classe message.
Voilà, pourriez vous m'aidez, me proposer des pistes ou une solution fonctionnelle 0:)
Cordialement
Je dois coder en JAVA l'algorithme de Chang et Roberts mais je ne vois pas comment réaliser ce programme.
Voici les consignes qui nous ont été transmises :
L'algorithme de Chang et Roberts utilise un maillage en anneau unidirectionnel, où chaque
processus sait adresser un message à son voisin de gauche par la primitive envoyer_voisin_gauche.
Un ou plusieurs processus peuvent décider de lancer un protocole d’élection. Sur chaque site, on trouve les variables suivantes :
mon_numéro : entier constant qui donne l’identificateur du site ;
plus_grand : variable entière donnant à un instant donné le plus grand numéro de processus connu sur le site.
participant : variable booléenne initialisée à faux, qui passe à vrai dès que le processus est touché par l’algorithme d’élection.
vainqueur : variable entière qui, à la fin de l’exécution, aura pour valeur le plus grand des numéros, c’est-à-dire le numéro du processus élu.
Les messages sont de deux types :
1) les messages de type élection ; un processus envoie un tel message soit quand il décide de lancer une élection (il lui fait alors contenir son propre numéro), soit quand il devient participant (il calcule alors plus_grand et fait contenir au message cette valeur), soit quand, déjà participant, il vient d’incrémenter plus_grand (il lui fait alors contenir plus_grand).
2) les messages de type élu qui font circuler, après qu’il a été déterminé, le plus grand
numéro de processus ; un processus qui reçoit un message de type élection portant son numéro sait qu’il est celui de plus grand numéro et envoie le premier message de type élu ; ce message est alors retransmis en faisant le tour de l’anneau.
Un message de type élection n’est pas retransmis par un processus participant si le numéro porté par le message n’est pas supérieur au plus grand numéro déjà connu sur le site ; un tel principe s’appelle principe de l’extinction sélective.
J'ai naturellement déjà implémenté la classe Processus dans laquelle je définis les variables mentionnées plus haut.
J'ai aussi crée un arrayList de voisin dans le constructeur (je ne sais pas si c'est correct ou pas) dans laquelle je renseigne l'unique voisin d'un Processus.
Je suppose aussi qu'il faut implémenter une classe message.
Voilà, pourriez vous m'aidez, me proposer des pistes ou une solution fonctionnelle 0:)
Cordialement
A voir également:
- Algorithme de Chang et Roberts
- Changer de dns - Guide
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Changer de carte graphique - Guide
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Changer de compte facebook - Guide
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584