Process
基本自旋鎖疑問
我在自旋鎖中讀到,程序在循環中不斷等待鎖,直到它從其他程序接收到信號(鎖)或釋放(鎖)。這會導致忙等待,因此浪費了 CPU 週期。
我的疑問是如果CPU在循環中不斷檢查鎖變數的值,那麼其他程序將如何完全執行臨界區並釋放鎖,因為執行臨界區也需要CPU並且CPU正忙於檢查其他程序中的鎖值?
即使一個程序在鎖上旋轉,任務調度程序仍然處於活動狀態,並將調度其他任務。在單 CPU 系統上,正在旋轉的任務將被掛起,並在其位置執行另一個任務;在多 CPU 系統上,確切的行為將取決於正在執行的任務的數量。