Anomalia di consenso sui registri di lettura-scrittura e test e set
-
04-11-2019 - |
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:
- Scrivi il tuo valore proposto su un [t], dove t è l'ID thread e A è un array di dimensioni 2
- Eseguire l'istruzione test-and-set su alcuni registri R, con R inizializzato su 0.
- 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