Anomalie consensuelle sur les registres et les tests en lecture
-
04-11-2019 - |
Question
J'ai lu cette réponse ci-dessous et je suis montée dans une autre question.
Pourquoi le numéro de consensus pour le test et le set, 2?
J'ai également lu que les registres de lecture / écriture ont un consensus numéro 1.
Mais je vois que dans Test & Set (également dans Compare & Swap) en utilisant les registres d'écriture de lecture seuls, nous arrivons toujours à un consensus.
Je pense qu'il me manque quelque chose de très fondamental ici. Besoin d'aide.
Le protocole dans la réponse acceptée du lien est comme mentionné ci-dessous
Supposons que nous ayons deux fils 0 et 1 qui doivent atteindre le consensus. Nous pourrions le faire en laissant chaque fil suivre le protocole de consensus ci-dessous:
- Écrivez votre valeur proposée sur un [t], où t est l'ID de thread et A est un tableau de taille 2
- Effectuez les instructions de test et de set sur un registre R, avec R initialisé à 0.
- Si la valeur de retour est 0, vous étiez d'abord: renvoyer un [t]. Sinon, vous étiez deuxième: renvoyez un [| t - 1 |].
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange