操作系統(tǒng)信號量PV操作題若干_第1頁
操作系統(tǒng)信號量PV操作題若干_第2頁
操作系統(tǒng)信號量PV操作題若干_第3頁
操作系統(tǒng)信號量PV操作題若干_第4頁
操作系統(tǒng)信號量PV操作題若干_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、(一)   圖書館有100個座位,每位進入圖書館的讀者要在登記表上登記,退出時要在登記表上注銷。要幾個程序?有多少個進程?(答:一個程序;為每個讀者設一個進程)(1)       當圖書館中沒有座位時,后到的讀者在圖書館為等待(阻塞)(2)       當圖書館中沒有座位時,后到的讀者不等待,立即回家。解(1 )設信號量:S=100;  MUTEX=1P(S)P(MUTEX)登記V(MUTEX)閱讀P(MUTEX)注銷V(MUTEX)V(S)   解(2)

2、設整型變量 COUNT=100; 信號量:MUTEX=1;P(MUTEX);IF (COUNT=0) V(MUTEX);   RETURN;COUNT=COUNT-1;登記V(MUTEX);閱讀P(MUTEX);COUNT=COUNT+1;V(MUTEX);RETURN;(二)  有一座東西方向的獨木橋;用P,V操作實現(xiàn):(1)       每次只允許一個人過橋;(2)       當獨木橋上有行人時,同方向的行人可以同時過橋,相反方向的人必須等待。(3)  

3、60;    當獨木橋上有自東向西的行人時,同方向的行人可以同時過橋,從西向東的方向,只允許一個人單獨過橋。(此問題和讀者與寫者問題相同,東向西的為讀者,西向東的為寫者)。(1)解設信號量 MUTEX=1P (MUTEX)  過橋V (MUTEX)(2)解設信號量: MUTEX=1 (東西方互斥)      MD=1    (東向西使用計數(shù)變量互斥)   MX=1    (西向東使用計數(shù)變量互斥)設整型變量: CD=0  (東向西的已上

4、橋人數(shù))        CX=0  (西向東的已上橋人數(shù))從東向西:P (MD)IF (CD=0)P (MUTEX)  CD=CD+1V (MD)過橋P (MD)CD=CD-1IF (CD=0)V (MUTEX)  V (MD)從西向東:P (MX)IF (CX=0)P (MUTEX)  CX=CX+1V (MX)過橋P (MX)CX=CX-1IF (CX=0)V (MUTEX)  V (MX)(3) 解:從東向西的,和(2)相同;從西

5、向東的和(1)相同。(三) 有一個俱樂部,有甲乙兩個服務員,當顧客有請求時,甲負責送煙,乙負責送火,無顧客請求時,服務員睡眠。顧客自己不能帶煙和火,當顧客要抽煙時,可請求服務員送煙和火,煙和火還未送到時,顧客必須等待。設信號量:SY, SH,CY,CH:初值都為0甲服務員REPEATP(SY)送煙V(CY)UNTIL FALSE乙服務員REPEATP(SH)送火V(CH)UNTIL FALSE顧客V(SY)  /*(請求送煙)*/V(SH)  /*(請求送火)*/P(CY)  /* (等煙)  */P(CH)

6、60; /* (等火)  */抽煙(四)一家四人父、母、兒子、女兒圍桌而坐;桌上有一個水果盤;(1)  當水果盤空時,父親可以放香蕉或者母親可以放蘋果,但盤中已有水果時,就不能放,父母等待。當盤中有香蕉時,女兒可吃香蕉,否則,女兒等待;當盤中有蘋果時,兒子可吃,否則,兒子等待。解 設信號量:SE=1 (空盤子);SA0 (放了蘋果的盤子);SB=0 (放了香蕉的盤子)父親REPEAT剝香蕉P(SE)放香蕉V(SB)UNTIL FALSE母親REPEAT削蘋果P(SE)放蘋果V(SA)UNTIL FALSE兒子P(SA)拿蘋果V(SE)吃蘋果女兒

7、P(SB)拿香蕉V(SE)吃香蕉(2) 把(1)改為:兒子要吃蘋果時,請母親放蘋果,女兒要吃香蕉時,請父親放香蕉,(還是盤子為空時才可以放)。(2)解:再增加兩個信號量:SF=0, SM=0父親REPEATP(SF)剝香蕉P(SE)放香蕉V(SB)UNTIL FALSE母親REPEATP(SM)削蘋果P(SE)放蘋果V(SA)UNTIL FALSE兒子V(SM)P(SA)拿蘋果V(SE)吃蘋果女兒V(SF)P(SB)拿香蕉V(SE)吃香蕉(五)有一個超市,最多可容納N個人進入購物,當N個顧客滿員時,后到的顧客在超市外等待;超市中只有一個收銀員??梢园杨櫩秃褪浙y員看作兩類進程,兩類進程間存在同步

8、關(guān)系。寫出用P;V操作實現(xiàn)的兩類進程的算法(2003年系統(tǒng)設計員考試的題目)解:設信號量:S=0,C=0 (顧客與收銀員的同步信號量),M=N收銀員P(S)收銀V(C)顧客P(M)進入店內(nèi)購物V(S)P(C)V(M)(六)有一個理發(fā)店,店內(nèi)共有20個座位供顧客等待理發(fā),(進入理發(fā)店的顧客,都在此座位上等待理發(fā),正在理發(fā)的顧客不占用此座位),當20個座位坐滿了,后到的顧客不等待,立即回家。當沒有顧客時,理發(fā)師睡眠等待。解:設信號量:S=0.C=0,MUTEX=1設整型變量  SM=20理發(fā)師REPEATP(S) -如無顧客,理發(fā)師等待V(C)   

9、0; 叫一個顧客理發(fā)理發(fā)UNTIL FALSE顧客P(MUTEX)IF (SM=0) V(MUTEX)滿座,離開,回家RETURNELSESM=SM-1空座位數(shù)減 1V(MUTEX)V(S)通知理發(fā)師,增加了一個顧客,如理發(fā)師在等待則喚醒他P(C) 等理發(fā)師叫自己理發(fā)P(MUTEX)SM=SM+1被叫到,釋放一個空的座位V(MUTEX)接受理發(fā)如果此題改為:滿座時,顧客等待空座位:則 顧客進程的程序修改如下:把SM設為信號量  SM=20顧客P(SM) -申請一個座位,無則等待V(S)通知理發(fā)師,增加了一個顧客,如理發(fā)師在等待則喚醒他P(C) 等理發(fā)師叫自己理發(fā)V

10、(SM)接受理發(fā)(七)一個盒子,內(nèi)有黑白兩種棋子(數(shù)量相等),甲每次從盒子中取出一顆黑子,乙每次從盒子中取出一顆白子,一人取了棋子后,必須等另一方取過棋子方可再取,(可假設甲先?。?。解:  設信號量:SJ=1,SY=0甲REPEATP(SJ)取一顆黑子V(SY)UNTIL 盒子中無黑子乙REPEATP(SY)取一顆白子V(SJ)UNTIL 盒子中無白子(八)按要求完成下面的程序。設有三個進程,input進程、compute進程和output進程;它們通過共享一個緩沖區(qū)buf的合作關(guān)系如下:(1)input進程每次輸入數(shù)據(jù)后,把數(shù)據(jù)送到buf,供compute進程計算和out

11、put進程打印;(2)comput進程每次從buf取出已輸入的可計算的數(shù)據(jù)進行計算,并當output進程把輸入數(shù)據(jù)打印完成后,把計算結(jié)果送入buf供output進程打印;(3)output進程每次按順序把buf中的輸入數(shù)據(jù)和計算結(jié)果在打印機上輸出。解:設信號量:sa=1,sb=sc=sd=0, 請把能正確實現(xiàn)這三個進程同步關(guān)系的P、V 操作的語句填入下面的程序。procedure inputbeginlocal datarepeat  get(data);   /*輸入數(shù)據(jù)到data*/  p(sa);  buf=

12、data;  (1)      V ( sc )                     v(sb);until falseend;procedure computebeginlocol datarepeat   (2)       P ( sb )          

13、               data=buf;   計算data并把結(jié)果保存在data;   (3)      P ( sd )                          buf=data;   v(sc);until falseend;procedure outputbeginlocal datarepeat   P(sc)   打印 buf;   (4)      

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論