Domanda

Ho letto questa risposta qui sotto e mi sono imbattuto in un'altra domanda.

Perché il numero di consenso per test-and-set, 2?

Ho anche letto che i registri di lettura/scrittura hanno il consenso numero 1.

Ma lo vedo in Test & Set (anche in confronto e scambio) usando i registri di lettura da soli, arriviamo ancora al consenso.

Penso che mi manchi qualcosa di molto fondamentale qui. Ho bisogno di aiuto.

Il protocollo nella risposta accettata del collegamento è come indicato di seguito

Supponiamo di avere due thread 0 e 1 che devono raggiungere il consenso. Potremmo farlo lasciando che ogni thread segua il protocollo di consenso di seguito:

  1. Scrivi il tuo valore proposto su un [t], dove t è l'ID thread e A è un array di dimensioni 2
  2. Eseguire l'istruzione test-and-set su alcuni registri R, con R inizializzato su 0.
  3. Se il valore di ritorno è 0, eri il primo: restituire un [t]. Altrimenti, eri secondo: restituire un [| t - 1 |].

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top