-
臨界資源
鎖定
- 中文名
- 臨界資源
- 硬件有
- 打印機、磁帶機
- 軟件有
- 消息緩衝隊列、變量
- 含 義
- 採取互斥的方式,實現共享的資源
臨界資源簡介
各進程採取互斥的方式,實現共享的資源稱作臨界資源。
進程中用於實現進程互斥的那段代碼稱為臨界區。顯然,若能保證諸進程互斥地進入自己的臨界區,便可實現諸進程對臨界資源的互斥訪問。為此,每個進程在進入臨界區之前,應先對欲訪問的臨界資源進行檢查,看它是否正被訪問。如果此刻該臨界資源未被訪問,進程便可進入臨界區對該資源進行訪問,並設置它正被訪問的標誌;如果此刻該臨界資源正被某進程訪問,則本進程不能進入臨界區。
在操作系統中,有臨界區的概念。臨界區內放的一般是被1個以上的進程或線程(以下只説進程)共用的數據。
臨界區內的數據一次只能同時被一個進程使用,當一個進程使用臨界區內的數據時,其他需要使用臨界區數據的進程進入等待狀態。
臨界資源事例
例如,打印機不可能同時打印多個進程的結果,若將一個進程的結果打印幾行,再打印另一個進程的結果,這會使打印的結果變得無法使用。所以兩個或兩個以上進程由於不能同時使用同一臨界資源,只能一個進程使用完了,另一進程才能使用。
除了物理設備外,還有很多軟資源如變量、表格、隊列等也都屬於臨界資源,如果同時使用,同樣會引起與時間相關的錯誤。例如,有兩個進程P1和P2共享一個變量count,P1或P2的功能是,每執行完某些操作後,將count的值取出加1,R1和R2是工作寄存器。當兩個進程按下述順序執行時:
P1:操作序列;
Rl=count;
R1=R1+1;
count=R1;
P2:操作序列;
R2=count;
R2=R2+1;
count=R2;
其結果使count的值增加了2;倘若P1和P2按另一種順序執行,例如:
P1:R1=count;
P2:R2=count;
P1:Rl=Rl+1;count=Rl;
P2:R2=R2+1;count=R2;
按此執行序列,雖使P1和P2都各自對count做了加1操作,但最後的count值卻只增加了1,即出現了結果不確定的錯誤。顯然這種錯誤與執行順序有關,又叫與時間相關的錯誤。之所以出現這種錯誤,是由於變量count是臨界資源,P1和P2不能同時使用,即僅當進程P1對count進行修改並退出後,才允許進程P2訪問和修改,那麼就可以避免上述的錯誤結果。
[1]
- 參考資料
-
- 1. 臨界資源 .系統之家.2013-05-06[引用日期2015-01-27]
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:25次歷史版本
- 最近更新: 饮水此