1

一部の OS カーネルは、xchg命令を使用してspinlock. また、ロック取得機能の実装内では、通常、xchg命令を使用してロックを取得する前に割り込みを無効にします。xchgでは、命令はメモリの順序付けを保証できますか? xchgつまり、割り込みを無効にする命令がその後呼び出されないことを保証できますか?

4

2 に答える 2

1

それができない XCHG 命令はありません。XCHG 命令の実行時に、プロセッサの LOCK 信号が自動的にアサートされるため、命令がアトミックに実行されることを保証するために追加の LOCK プレフィックスは必要ありません。XCHG は常にアトミックに実行されます。また、割り込みを無効にする必要はありません。

于 2012-11-01T15:47:41.177 に答える