進程互斥的解決方案
硬件實現方法:中斷屏蔽方法、TS/TSL指令、Swap/XCHG指令。
軟件實現方法:單標志法、雙標志先檢查、雙標志后檢查、Peterson算法。
各種解決方案存在的問題:
例如:1.在雙標志先檢查方法中,進入區的“檢查”、”上鎖“ 操作無法一氣呵成,從而導致倆個進程有可能同時進入臨界區的問題;
2.所有解決方案都無法實現“讓權等待”原則。
信號量機制:用戶進程可以通過使用操作系統提供的一對原語來對信號量進行操作,從而很方便的實現進程互斥,進程同步。
信號量:其實就是一個變量(可以是一個整數,也可以是更復雜的記錄型變量),可以用一個信號量來表示系統中某種資源的數量,比如:系統中只有一台打印機,就可以設置一個初值為1的信號量。
整型信號量:缺點無法實現讓權等待。
記錄型信號量:為了解決讓權等待的問題。