テスト・アンド・セット
CPU1は、メモリアドレスA への書き込みのテスト・アンド・セット命令を発行する。DPRAMは即座にそのアドレスAに値を書き込まず、アドレスAの現在の値を特別なレジスタに移し、アドレスAの位置には特別なフラグをセットする。ここでCPU2が同じアドレスAへのテスト・アンド・セット命令を発行すると、DPRAMは特別なフラグがセットされていることを検出し、バリエーション1と同様にBUSY割り込みを発生させる。
CPU2がそのアドレスにアクセスしようとしていたかどうかに関わらず、DPRAMはCPU1のテストを実行する(特別なレジスタに格納された値とCPU1の指定した値を比較する)。テストが成功すると、DPRAMはアドレスAのメモリ位置にCPU1が指定した値を書き込む。テストが失敗するとDPRAMは特別なレジスタからアドレスAに値を戻す。どちらの操作によっても特別なフラグは消されるので、CPU2がテスト・アンド・セット命令を発行できるようになる。
テスト・アンド・セット命令を使ってセマフォを実装することができる。シングルプロセッサシステムではセマフォの実装にこの技法は不要であり、単に割り込みを不可にしてセマフォにアクセスするだけで事足りる。しかし、マルチプロセッサシステムでは、全プロセッサで同時に割り込み不可にできたとしても、それだけでは不十分である。割り込み不可となっていても、複数のプロセッサが同時に同じセマフォにアクセスすることができる。この場合、テスト・アンド・セット命令が使われる可能性がある。