1簡介

系統中的各種硬體資源和軟體資源,均可用數據結構抽象地描述其資源特性,即用少量信息和對資源所執行的操作來表徵該資源,而忽略了它們的內部結構和實現細節。
利用共享數據結構抽象地表示系統中的共享資源,而把對該共享數據結構實施的操作定義為一組過程。
代表共享資源的數據結構,以及由對該共享數據結構實施操作的一組過程所組成的資源管理程序,共同構成了一個操作系統的資源管理模塊,我們稱之為管程。
Hansan為管程所下的定義:「一個管程定義了一個數據結構和能為併發進程所執行(在該數據結構上)的一組操作,這組操作能同步進程和改變管程中的數據」。

2組成

有上述定義可知,管程由四部分組成:
1.管程內部的共享變數;
2.管程內部的條件變數;
3.管程內部并行執行的進程;
4.對局部於管程內部的共享數據設置初始值的語句。
局部於管程的數據結構,只能被局部於管程的過程所訪問,任何管程之外的過程都不能訪問它;反之,局部於管程的過程也只能訪問管程內的數據結構。由此可見,管程相當於圍牆,它把共享變數和對它進行操作的若干個過程圍了起來,所有進程要訪問臨界資源時,都必須經過管程才能進入,而管程每次只允許一個進程進入管程,從而實現了進程的互斥。
管程在管式換熱器中系指介質流經換熱管內的通道及相貫通部分。
管程的條件變數:條件變數是在管程內部的數據結構,且只有在管程內才能被訪問,它對管程內所有過程是全局的,只能通過wait(),signal()兩個操作訪問。
wait():掛起調用進程並釋放管程,直至另一進程在條件變數上執行signal()。
signal():如果有其他進程因對條件變數執行wait()而被掛起,便釋放之,如果沒有進程等待,則信號被忽略,不保存。
上一篇[PrP病]    下一篇 [硬化性腺病]

相關評論

同義詞:暫無同義詞