《操作系統(tǒng)習(xí)題解答一》由會員分享,可在線閱讀,更多相關(guān)《操作系統(tǒng)習(xí)題解答一(15頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,操作系統(tǒng)習(xí)題解答,計算機操作系統(tǒng),PV,操作的含義:,PV,操作由,P,操作原語和,V,操作原語組成(,原語是不可中斷的過程,),對信號量進行操作,具體定義如下:,P,(,S,):將信號量,S,的值減,1,,即,S=S,1,;,如果,S,0,,則該進程繼續(xù)執(zhí)行;否則該進程置為等待狀態(tài),排入等待隊列。,V,(,S,):將信號量,S,的值加,1,,即,S=S+1,;,如果,S0,,則該進程繼續(xù)執(zhí)行;否則釋放隊列中第一個等待信號量的進程。,PV,操作的意義:,我們用信號量及,PV,操作來實現(xiàn)進程的同步和互斥。,PV,操作屬于進程的,低級通信,
2、。,信號量(,semaphore,),的數(shù)據(jù)結(jié)構(gòu)為一個值和一個指針,指針指向等待該信號量的下一個進程。,信號量的值與相應(yīng)資源的使用情況有關(guān),。當(dāng)它的值大于,0,時,表示當(dāng)前可用資源的數(shù)量;當(dāng)它的值小于,0,時,其絕對值表示等待使用該資源的進程個數(shù)。注意,,信號量的值僅能由,PV,操作來改變,。,利用信號量和,PV,操作實現(xiàn)進程互斥的一般模型是:,進程,P1,進程,P2 ,進程,Pn,P,(,S,);,P,(,S,);,P,(,S,);,臨界區(qū);臨界區(qū);臨界區(qū);,V,(,S,);,V,(,S,);,V,(,S,);,其中信號量,S,用于互斥,初值為,1,。,使用,PV,操作實現(xiàn)進程互斥時應(yīng)該注意
3、的是:,(,1,)每個程序中用戶實現(xiàn)互斥的,P,、,V,操作必須成對出現(xiàn),先做,P,操作,進臨界區(qū),后做,V,操作,出臨界區(qū),。若有多個分支,要認真檢查其成對性。,(,2,),P,、,V,操作應(yīng)分別緊靠臨界區(qū)的頭尾部,,臨界區(qū)的代碼應(yīng)盡可能短,不能有死循環(huán),。,(,3,),互斥信號量的初值一般為,1,。,生產(chǎn)者,-,消費者問題,一個生產(chǎn)者,一個消費者,公用一個緩沖區(qū)。,定義兩個同步信號量:,empty,表示緩沖區(qū)是否為空,初值為,1,。,full,表示緩沖區(qū)中是否為滿,初值為,0,。,生產(chǎn)者進程,while(TRUE,),生產(chǎn)一個產(chǎn)品,;,P,(,empty,);,產(chǎn)品送往,Buffer;,V
4、,(,full,);,消費者進程,while(True,),P,(,full,);,從,Buffer,取出一個產(chǎn)品,;,V,(,empty,);,消費該產(chǎn)品,;,設(shè)公共汽車上,司機和售票員的活動分別是:,司機的活動:啟動車輛;,正常行車;,到站停車;,售票員的活動:關(guān)車門;,售票;,開車門;,在汽車不斷地到站、停車、行駛過程中,這兩個活動有什么同步關(guān)系?用信號量和,P,、,V,操作實現(xiàn)它們的同步。,解:,在汽車行駛過程中,司機活動與售票員活動之間的同步關(guān)系為:售票員關(guān)車門后,向司機發(fā)開車信號,司機接到開車信號后啟動車輛,在汽車正常行駛過程中售票員售票,到站時司機停車,售票員在車停后開車門讓乘客
5、上下車。因此司機啟動車輛的動作必須與售票員關(guān)車門的動作取得同步;售票員開車門的動作也必須與司機停車取得同步,,在本題中,應(yīng)設(shè)置兩個信號量:,S1,、,S2,。,S1,表示是否允許司機啟動汽車,其初值為,0,;,S2,表示是否允許售票員開門,其初值為,0,。用,P,、,V,原語描述如下:,int,Sl,0;,int,S2,0;,main(),cobegin,driver();,busman();,coend,driver(),while(1),P(S1);,啟動車輛,;,正常行車,;,到站停車,;,V(S2);,busman(),while(1),關(guān)車門,;,V(Sl,);,售票,;,P(S2)
6、;,開車門,;,上下乘客,;,四個進程,A,、,B,、,C,、,D,都要讀一個共享文件,F,,系統(tǒng)允許多個進程同時讀文件,F,。但限制是進程,A,和進程,C,不能同時讀文件,F,,進程,B,和進程,D,也不能同時讀文件,F,。為了使這四個進程并發(fā)執(zhí)行時能按系統(tǒng)要求使用文件,現(xiàn)用,PV,操作進行管理,請回答下面的問題:,(,1,)應(yīng)定義的信號量及初值:,。,(,2,)在下列的程序中填上適當(dāng)?shù)?P,、,V,操作,以保證它們能正確并發(fā)工作:,A()B()C()D(),1;3;5;7;,read F;read F;read F;read F;,2;4;6;8;,思考題解答:,(,1,)定義二個信號量,S1,、,S2,,初值均為,1,,即:,S1=1,,,S2=1,。其中進程,A,和,C,使用信號量,S1,,進程,B,和,D,使用信號量,S2,。,(,2,)從,1,到,8,分別為:,P(S1)V(S1)P(S2)V(S2)P(S1)V(S1)P(S2)V(S2),參考題:,桌上有一空盤,允許存放一只水果。爸爸可向盤中放蘋果,也可向盤中放桔子,兒子專等吃盤中的桔子,女兒專等吃盤中的蘋果。規(guī)定當(dāng)盤空時一次只能放一只水果供吃者取用,請用,P,、,V,原語實現(xiàn)爸爸、兒子、女兒三個并發(fā)進程的同步。,