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:

  1. Écrivez votre valeur proposée sur un [t], où t est l'ID de thread et A est un tableau de taille 2
  2. Effectuez les instructions de test et de set sur un registre R, avec R initialisé à 0.
  3. 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
scroll top