32

誰かがマルチスレッドでの上記の操作の動作と違いを説明してもらえますか?

4

2 に答える 2

54

test-and-setメモリ位置の内容を変更し、その古い値を単一のアトミック操作として返します。

compare-and-swapメモリ位置の内容を指定された値と原子的に比較し、それらが同じである場合にのみ、そのメモリ位置の内容を指定された新しい値に変更します。

違いは太字で示されています。

于 2010-09-07T14:23:55.797 に答える
11

テストとセットはビットで動作し、比較とスワップは 32 ビット フィールドで動作します。

多くの場合、システム コードの重要な領域へのアクセスを制御するために設定されるビットがロック インジケーターであるため、z/TPF システムではテスト アンド セット (TS) 命令の使用が好まれます。テスト アンド セット (TS) 命令は、コンペア アンド スワップ (CS) 命令よりも必要なレジスタが少なく、設定する必要があるのは 1 バイトのみであるため、実行時間も短くなります。

そして、これらの資料はhttp://www.ibm.com/support/knowledgecenter/SSB23S_1.1.0.13/gtpc3/tasinst.htmlから見つけました。

「Modern Operating System, Chapter 2」という本で TSL の詳細を学ぶことができます...

于 2016-10-18T06:57:09.557 に答える