Windows 中的過程同步
Windows 作業系統是一個多執行緒核心,為即時應用程式和多處理器提供支援。在單處理器系統上,Windows 提供中斷掩碼以保護對全域性資源的訪問。它使用旋轉鎖保護對全域性資源的訪問。核心僅使用旋轉鎖保護短程式碼段,如 Solaris。核心確保執行緒在持有旋轉鎖時永遠不會被搶佔。
Windows 根據各種不同的機制(包括互斥體、訊號量、事件和定時器)提供分派器物件進行執行緒同步。系統透過要求執行緒獲得互斥體的所有權來訪問資料,並在完成後釋放所有權,從而保護共享資料。
事件充當條件變數,在所需條件發生時通知等待執行緒。
定時器用於在時間到時通知一個或多個執行緒。
分派器物件可以處於已發出訊號狀態或未發出訊號狀態。
已發出訊號狀態表示物件可用,並且執行緒在獲取物件時不會阻塞。
未發出訊號狀態表示物件不可用,並且執行緒在嘗試獲取物件時會阻塞。
下圖顯示了互斥鎖分派器物件的狀態轉換 -
圖:互斥分派器物件
ADVERTISEMENT