Windows 中的過程同步


Windows 作業系統是一個多執行緒核心,為即時應用程式和多處理器提供支援。在單處理器系統上,Windows 提供中斷掩碼以保護對全域性資源的訪問。它使用旋轉鎖保護對全域性資源的訪問。核心僅使用旋轉鎖保護短程式碼段,如 Solaris。核心確保執行緒在持有旋轉鎖時永遠不會被搶佔。

Windows 根據各種不同的機制(包括互斥體、訊號量、事件和定時器)提供分派器物件進行執行緒同步。系統透過要求執行緒獲得互斥體的所有權來訪問資料,並在完成後釋放所有權,從而保護共享資料。

事件充當條件變數,在所需條件發生時通知等待執行緒。

定時器用於在時間到時通知一個或多個執行緒。

分派器物件可以處於已發出訊號狀態或未發出訊號狀態。

已發出訊號狀態表示物件可用,並且執行緒在獲取物件時不會阻塞。

未發出訊號狀態表示物件不可用,並且執行緒在嘗試獲取物件時會阻塞。

下圖顯示了互斥鎖分派器物件的​​狀態轉換 -

圖:互斥分派器物件

更新於:2019 年 10 月 11 日

2K+ 瀏覽量

啟動您的 職業

完成課程並獲得認證

開始
ADVERTISEMENT