操作系統(tǒng)第4章 習(xí)題課_第1頁
操作系統(tǒng)第4章 習(xí)題課_第2頁
操作系統(tǒng)第4章 習(xí)題課_第3頁
操作系統(tǒng)第4章 習(xí)題課_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——操作系統(tǒng)第4章習(xí)題課P127三、應(yīng)用題:

1.另一個(gè)經(jīng)典同步問題:吸煙者問題(patal,1971)。三個(gè)吸煙者

在一間房間內(nèi),還有一個(gè)香煙供應(yīng)者。為了制造并抽掉香煙,每個(gè)吸煙者需要三樣?xùn)|西:煙草、紙和火柴。供應(yīng)者有豐富的貨物提供。三個(gè)吸煙者中,第一個(gè)有自己的煙草,其次個(gè)有自己的紙,第三個(gè)有自己的火柴。供應(yīng)者將兩樣?xùn)|西放在桌子上,允許一個(gè)吸煙者進(jìn)行對健康不利的吸煙。當(dāng)吸煙者完成吸煙后喚醒供應(yīng)者,供應(yīng)者再放兩樣?xùn)|西(隨機(jī)地)在桌面上,然后喚醒另一個(gè)吸煙者。試采用信號量和P、V操作編寫他們同步工作的程序。問題分析:

供應(yīng)者seller隨即產(chǎn)生兩樣?xùn)|西,提供它們,這里用普通變量來表示

吸煙者進(jìn)程smoker根據(jù)其排號不同,擁有不同的一件東西。假設(shè)1號吸煙者擁有煙草tobacco,2號吸煙者擁有紙paper,3號吸煙者擁有火柴match。其他號碼錯(cuò)誤返回。

吸煙者的序號代表他們擁有的東西,用他們的序號和供應(yīng)者產(chǎn)生的兩樣?xùn)|西比較,假使都不相等,則說明他擁有的東西和供應(yīng)者產(chǎn)生的東西匹配,它可以吸煙。假使其中一個(gè)相等,則退出,繼續(xù)排隊(duì)。mutex信號量代表一個(gè)只能進(jìn)入的門,每次只有一個(gè)吸煙者可以進(jìn)入進(jìn)行比較和吸煙。

每個(gè)吸煙者在吸煙完畢之后出門之前要叫醒供應(yīng)者,調(diào)用seller

進(jìn)程。

vars,S1,S2,S3;semaphore;S:=1;S1:=S2:=S3:=0;fiag1,flag2,fiag3:Boolean;fiag1:=flag2:=flag3:=true;cobeginprocess供應(yīng)者beginrepeatP(S);

取兩樣香煙原料放桌上,由flagi標(biāo)記;//flag1、flag2、flag3代表煙草、紙、火柴ifflag2//供紙和火柴

elseifflag1//供煙草和火柴elseV(S3);//供煙草和紙untilefalse;end

process吸煙者1beginrepeatP(S1);

取原料;做香煙;V(S);吸香煙;untilefalse;end

process吸煙者2beginrepeat

P(S2);取原料;做香煙;V(S);吸香煙;untilefalse;end

process吸煙者3beginrepeatP(S3);取原料;做香煙;

V(S);吸香煙;untilefalse;endcoend

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

分析:實(shí)質(zhì)上是兩個(gè)進(jìn)程的同步問題,設(shè)信號量S1和S2分別表示可揀白子和黑子,不失一般性,若令先揀白子。varS1,S2:semaphore;S1:=1;S2:=0;Cobegin{processP1begin

repeatP(S1);揀白子V(S2);

untilfalse;endprocessP2beginrepeatP(S2);揀黑子V(S1);untilfalse;end}coend.

3、一個(gè)餐廳有4類職員:(1)領(lǐng)班:接受顧客點(diǎn)菜(2)廚師:準(zhǔn)備顧客的飯菜(3)打包工:將做好的飯菜打包(4)出納員:收款并提交食品。

分析:將這四類職員看成四類進(jìn)程P1,P2,P3,P4,然后四類進(jìn)程對兩個(gè)變量進(jìn)行操作,s1是點(diǎn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論