5

並行プログラミングを読んでいるときに、コンペア・アンド・スワップおよびコンペア・アンド・セット操作でコンセンサス番号という用語に出くわしました。この用語の意味を理解するのに苦労しています、誰か説明できますか?

ありがとうございました!!

4

1 に答える 1

11

コンセンサスの問題は次のようなものです...N個のプロセスがあります。すべてのスレッドが値を提案するようになり、スレッドはこれらの提案された値の1つと同じものを決定する必要があります。

2つのスレッドの例:スレッドAは値Aを提案し、スレッドBは値Bを提案します。有効な結果は、両方のスレッドがAを決定するか、両方のスレッドがBを決定することです。

コンセンサス問題の解決に役立つさまざまな特別なオブジェクトまたは操作があります。それらの強力さは、コンセンサス番号によって評価されます。これは、コンセンサス問題を解決できるスレッドの最大数に等しくなります。

  • コンセンサス番号1:通常の読み取り/書き込みレジスタ。(つまり、単純な変数です。)
  • コンセンサス番号2:テストと設定(別名比較と設定)、キュー、スタックなど
  • コンセンサス番号2n-2:nレジスタの割り当て
  • コンセンサスナンバー∞:コンペアアンドスワップなど
于 2011-03-19T19:16:33.377 に答える