TSETは、いくつかのことを行う不可分なマシンコード命令です。そのロジックを次のように考えてください。
TSET(X)
if (x == 0) {
x = 1;
return true;
} else
return false;
従来のOSの教科書によると、スレッドの同期に依存しています。セマフォの実装で使用される場合があります。分割できないため、同じCPUでスレッドがタイムリーに切り替わった場合でも、クリティカルセクションへのエントリを保護するために使用できます。単一のCPUでの使用は、(私には)すでによく理解されています。
私のハードウェアの知識が不足しているのは次のとおりです。異なるCPU上の2つの競合するスレッドが、同じTSET(x)を「同時に」発行した場合はどうなりますか。これにより、各CPUのフェッチ実行サイクルが同期されているかどうか(およびどのように同期されているか)を尋ねられます。CPU1での命令が発生し、次にCPU2での命令が発生し、次にCPU1が再び発生するということですか?これはどのように行われるのですか?私は理にかなっていますか?私は自分の質問に答えましたか?