基本的なスピンロックの質問

基本的なスピンロックの質問

スピンロックでは、プロセスは他のプロセスから信号(ロック)を受信または解放(ロック)するまでループ内でロックを待ち続けます。これにより、忙しい待機が発生し、CPUサイクルが無駄になります。

私の疑いは、CPUがループ内のロック変数の値をチェックし続ける場合、他のプロセスがしきい値セクションを完全に実行してロックを解除できる方法です。しきい値セクションを実行するにはCPUも必要で、CPUはロックを確認するのに忙しいからです。他のプロセスのロック値は何ですか?

ベストアンサー1

プロセスがロック状態で回転していても、タスクスケジューラはまだアクティブであり、他のタスクをスケジュールします。シングル CPU システムでは回転ジョブが一時停止し、マルチ CPU システムでは別のジョブが代わりに実行されます。正確な動作は、実行中のジョブの数によって異なります。

おすすめ記事