-
進程互斥
鎖定
兩個或兩個以上的進程,不能同時進入關於同一組共享變量的臨界區域,否則可能發生與時間有關的錯誤,這種現象被稱作進程互斥· 也就是説,一個進程正在訪問臨界資源,另一個要訪問該資源的進程必須等待。
- 中文名
- 進程互斥
- 準則1
- 空閒讓進
- 準則2
- 忙則等待
- 準則3
- 有限等待
- 準則4
- 讓權等待
進程互斥定義
訪問臨界資源的循環進程可以這樣來描述:
Repeat
entry section
Critical sections;
exit section
Remainder section;
Until false
進程互斥實現進程互斥
為實現進程互斥,可以利用軟件的方法,也可以在系統中設置專門的同步機制來協調多個進程,但是所有的同步機制應該遵循四大準則:
1.空閒讓進 當臨界資源處於空閒狀態,允許一個請求進入臨界區的進程立即進入臨界區,從 而有效的利用資源。
2.忙則等待 已經有進程進入臨界區時,意味着相應的臨界資源正在被訪問,所以其他準備進 入臨界區的進程必須等待,來保證多進程互斥。
3.有限等待 對要求訪問臨界資源的進程,應該保證該進程能在有效的時間內進入臨界區,防 止死等狀態。
4.讓權等待 當進程不能進入臨界區,應該立即釋放處理機,防止進程忙等待。
早期解決進程互斥問題有軟件的方法和硬件的方法,如:嚴格輪換法,Peterson的解決方案,TSL指令,Swap指令都可以實現進程的互斥,不過它們都有一定的缺陷,這裏就不一一詳細説明,而後來Dijkstra提出的信號量機制則更好的解決了互斥問題。
解決進程互斥還有管程,進程消息通信等方式。
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:14次歷史版本
- 最近更新: 阿妧云