操作系統(tǒng)第二章pv操作典型問題_第1頁
操作系統(tǒng)第二章pv操作典型問題_第2頁
操作系統(tǒng)第二章pv操作典型問題_第3頁
操作系統(tǒng)第二章pv操作典型問題_第4頁
操作系統(tǒng)第二章pv操作典型問題_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

操作系統(tǒng)第二章pv操作典型問題司機(jī)與售票員的問題

司機(jī)P1售票員P2semaphores1=0,s2=0;while(true)while(true)

{{

P(S1);

啟動車輛;關(guān)門;

V(S1);

正常運(yùn)行;售票;

P(S2);

到站停車;開門;

V(S2);

}}

2前驅(qū)關(guān)系.一個(gè)快餐廳有4類職員:(1)領(lǐng)班:接受顧客點(diǎn)菜;(2)廚師:準(zhǔn)備顧客的飯菜;(3)包工:將做好的飯菜打包;(4)出納員:收款并提交食品。每個(gè)職員可被看作一個(gè)進(jìn)程,試用一種同步機(jī)制寫出能讓四類職員正確并發(fā)運(yùn)行的程序。3典型的進(jìn)程同步問題,可設(shè)四個(gè)信號量S1、S2、S3和S4來協(xié)調(diào)進(jìn)程工作。varS1,S2,S3,S4:semaphore;

S1:=1;S2:=S3:=S4:=0;

cobegin

{processP1

begin

repeat

有顧客到來;

P(S1);

接受顧客點(diǎn)菜;

V(S2);

untilefalse;

end

consumer

processP4

begin

repeat

P(S4);

收款并提交食品;V(S1);

ufltilefalse;

end

}

coend.

processP2

begin

repeat

P(S2);

準(zhǔn)備顧客的飯菜;

v(S3);

untilefalse;

end

processP3

begin

repeat

P(S3);

將做好的飯菜打包;

V(S4);

untilefalse;

end

4揀子問題在一個(gè)盒子里,混裝了數(shù)量相等的黑白圍棋子·現(xiàn)在用自動分揀系統(tǒng)把黑子、白子分開,設(shè)分揀系統(tǒng)有二個(gè)進(jìn)程P1和P2,其中P1揀白子;P2揀黑子。規(guī)定每個(gè)進(jìn)程每次揀一子;當(dāng)一個(gè)進(jìn)程在揀時(shí),不允許另一個(gè)進(jìn)程去揀;當(dāng)一個(gè)進(jìn)程揀了一子時(shí),必須讓另一個(gè)進(jìn)程去揀.試寫出兩進(jìn)程P1和P2能并發(fā)正確執(zhí)行的程序。

5設(shè)置兩個(gè)信號量S1和S2來協(xié)調(diào)進(jìn)程P1和P2之間的同步。假定先讓P1揀白子,則信號量S1和S2的初值分別為1和0。兩個(gè)并發(fā)進(jìn)程相應(yīng)的程序如下:P2:beginrepeatP(S2);

揀黑子;

V(S1);untilfalseendcoendendbeginS1:=1;S2:=0;cobeginP1:beginrepeatP(S1);

揀白子;

V(S2);untilfalseend6有一材料保管員,他保管紙和筆若干。有A、B兩組學(xué)生,A組學(xué)生每人都備有紙,B組學(xué)生每人都備有筆.任一學(xué)生只要能得到其他一種材料就可以寫信。有一個(gè)可以放一張紙或一支筆的小盒,當(dāng)小盒中無物品時(shí),保管員就可任意放一張紙或一支筆供學(xué)生取用,每次允許一個(gè)學(xué)生從中取出自己所需的材料,當(dāng)學(xué)生從盒中取走材料后允許保管員再存放一件材料,請用信號量與P、V操作。典型生產(chǎn)者問題17cobegin

{

process保管員

begin

repeat

P(S);

takeamaterialintobox;

if(box)=PaperthenV(Sa);

elseV(Sb);

untilefalse;

end

ProcessB組學(xué)生

begin

repeat

P(Sb);

P(mutexb);

takethepaperfrombox;

V(mutexb);

V(S);

wntealetter;

untilefalse;

end

}

Coend.

semaphores,Sa,Sb,mutexa,mutexb;

s=1;mutexa=1;mutexb=1;sa=0;sb=0;

box(PaPer,pen);ProcessA組學(xué)生

begin

repeat

P(Sa);

P(mutexa);

takethepenfrombox;

V(mutexa);

V(S);

writealetter;

untilefalse;

end

8大家學(xué)習(xí)辛苦了,還是要堅(jiān)持繼續(xù)保持安靜9典型生產(chǎn)者問題2

桌上有一只盤子,最多可以容納兩個(gè)水果,每次僅能放入或取出一個(gè)水果。爸爸向盤子中放蘋果(apple),媽媽向盤子中放桔子(orange),兩個(gè)兒子專等吃盤子中的桔子,兩個(gè)女兒專等吃盤子中的蘋果.試用:信號量和P、V操作,描述進(jìn)程同步。10beginmutex:=1;empty:=2;apple:=0;orange:=0;cobeginfather:beginrepeatP(empty);P(mutex);

向盤中放蘋果;

V(mutex);V(apple);untilfalseendmother:beginrepeatP(empty);P(mutex);

向盤中放桔子;

V(mutex);V(orange);untilfalseenddaughteri(i=1,2;):beginrepeatP(apple);P(mutex);

取盤中蘋果;

V(mutex);V(empty);untilfalseendsoni(i=1,2):beginrepeatP(orange);P(mutex);

取盤中桔子;

V(mutex);V(empty);untilfalseendcoendend;11哲學(xué)家進(jìn)餐解決辦法1

至多只允許有四位哲學(xué)家同時(shí)去拿左邊的筷子,最終能保證至少有一位哲學(xué)家能夠進(jìn)餐,并在用畢時(shí)能釋放出他用過的兩只筷子,從而使更多的哲學(xué)家能夠進(jìn)餐。12semaphoreseat=4;chopstick[5]={1,1,1,1,1};processi{while(ture){think();P(seat);P(chopstick[i]);P(chopstick[i+1]%5);}eat();V(chopstick[i]);V(chopstick[i+1]%5);V(seat);}}13哲學(xué)家進(jìn)餐解決辦法3規(guī)定奇數(shù)號哲學(xué)家先拿他左邊的筷子,然后再去拿右邊的筷子;而偶數(shù)號哲學(xué)家則相反。按此規(guī)定,將是1、2號哲學(xué)家競爭1號筷子;3、4號哲學(xué)家競爭3號筷子。即五位哲學(xué)家都先競爭奇數(shù)號筷子,獲得后,再去競爭偶數(shù)號筷子,最后總會有一位哲學(xué)家能獲得兩只筷子而進(jìn)餐14semaphorechopstick[5]={1,1,1,1,1};processi{while(ture){think();if(i%2!=0){P(chopstick[

溫馨提示

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

最新文檔

評論

0/150

提交評論