Loading article…
コンピュータサイエンスにおいて、読み取り、変更、書き込みは、メモリ位置の読み取りと、完全に新しい値または以前の値の何らかの関数による新しい値の書き込みの両方を同時に行うアトミック操作(テストと設定、フェッチと追加、比較とスワップなど)の一種です。これらの操作は、マルチスレッド アプリケーションでの競合状態を防止します。通常、これらはミューテックスまたはセマフォを実装するために使用されます。これらのアトミック操作は、非ブロッキング同期でも頻繁に使用されます。
モーリス・ハーリヒー(1991)は、アトミック操作をコンセンサス数によって次のようにランク付けしています。
- ∞ : メモリ間の移動とスワップ、拡張キュー、比較とスワップ、フェッチとコンス、スティッキーバイト、ロードリンク/ストア条件付き(LL/SC) [1]
- 2 n − 2 : nレジスタの割り当て
- 2 :テストとセット、スワップ、フェッチと追加、キュー、スタック
- 1 : アトミック読み取りとアトミック書き込み
与えられたコンセンサス数を必要とする操作を、より低いコンセンサス数の操作だけで実装することは、そのような操作をいくつ使用しても不可能である。[2] 読み取り-変更-書き込み命令は、書き込み操作が読み取り操作でアクセスされる同じ内部レジスタに影響を与えない可能性があるため、 I/Oデバイスで使用すると予期しない結果が生じることが多い。 [3]
この用語は、実際の書き込み操作をアトミックな読み取り、変更、書き込みシーケンスとして実行するRAIDレベルにも関連付けられています。 [4] このようなRAIDレベルには、RAID 4、RAID 5、RAID 6が含まれます。
参照
参考文献
- ^ 「ロックフリー コードの記述: 修正されたキュー」、Herb Sutter著: 「比較スワップ (CAS) は... 広く利用可能です... ただし、一部のシステムでは、代わりに同等に強力なロード リンク/ストア条件 (LL/SC) が提供されています。」
- ^ Herlihy, Maurice (1991 年 1 月). 「待機なしの同期」(PDF) . ACM Trans. Program. Lang. Syst . 13 (1): 124–149. CiteSeerX 10.1.1.56.5659 . doi :10.1145/114005.102808. S2CID 2181446 . 2007 年 5 月 20 日閲覧。
- ^ Massmind: 「読み取り、変更、書き込みの問題」
- ^ 「基本的な RAID 組織」。umass.edu。2021年2 月 24 日時点のオリジナルよりアーカイブ。2013 年 10 月 4 日閲覧。
