版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、26.26.假定有如下獨(dú)木橋問題:過橋時(shí),同一方向的行人可連續(xù)過橋,當(dāng)某一方向有人假定有如下獨(dú)木橋問題:過橋時(shí),同一方向的行人可連續(xù)過橋,當(dāng)某一方向有人過橋時(shí),另一方向的行人必須等待;當(dāng)某一方向無人過橋時(shí),另一方向的行人可以過過橋時(shí),另一方向的行人必須等待;當(dāng)某一方向無人過橋時(shí),另一方向的行人可以過橋。試用信號(hào)量機(jī)制解決。橋。試用信號(hào)量機(jī)制解決。答:答:(1)將獨(dú)木橋的兩個(gè)方向分別標(biāo)記為將獨(dú)木橋的兩個(gè)方向分別標(biāo)記為A和B。用整型變量。用
2、整型變量countAcountA和countBcountB分別表示分別表示A、B方向方向上已在獨(dú)木橋上的行人數(shù),初值都設(shè)置為上已在獨(dú)木橋上的行人數(shù),初值都設(shè)置為0。需要設(shè)置三個(gè)初值都為。需要設(shè)置三個(gè)初值都為1的互斥信號(hào)量:的互斥信號(hào)量:MAMA用來用來實(shí)現(xiàn)對(duì)實(shí)現(xiàn)對(duì)countAcountA的互斥訪問,的互斥訪問,MBMB用來實(shí)現(xiàn)對(duì)用來實(shí)現(xiàn)對(duì)countBcountB的互斥訪問,的互斥訪問,mutexmutex用來實(shí)現(xiàn)兩個(gè)方向的行用來實(shí)現(xiàn)兩個(gè)
3、方向的行人對(duì)獨(dú)木橋的互斥使用。人對(duì)獨(dú)木橋的互斥使用。(2)(2)以下使用信號(hào)量機(jī)制對(duì)以下使用信號(hào)量機(jī)制對(duì)A方向上的行人過橋和方向上的行人過橋和B方向上的行人過橋的算法進(jìn)行描述:方向上的行人過橋的算法進(jìn)行描述:intcountAcountBcountA=0countB=0SemapheMAMBmutex定義了三個(gè)互斥信號(hào)量MA.value=1MB.value=1mutex.value=1cobeginprocessA_direction_
4、cross_bridge_personA方向上過獨(dú)木橋的行人進(jìn)程方向上過獨(dú)木橋的行人進(jìn)程P(MA)實(shí)現(xiàn)對(duì)臨界資源countA的互斥訪問當(dāng)A方向上沒有行人過獨(dú)木橋時(shí),這時(shí)有可能存在B方向上的行人在過獨(dú)木橋。if(countA==0)P(mutex)如果當(dāng)前獨(dú)木橋正在被使用,說明如果當(dāng)前獨(dú)木橋正在被使用,說明B方向上的行人正在過橋,則方向上的行人正在過橋,則A方向上的行人方向上的行人必須等待。必須等待。countA=countA1當(dāng)B方向上
5、沒有行人過橋時(shí),則方向上沒有行人過橋時(shí),則A方向上的行人可以過獨(dú)木橋。因此方向上的行人可以過獨(dú)木橋。因此A方向上已在獨(dú)木橋上的行人數(shù)增加方向上已在獨(dú)木橋上的行人數(shù)增加1個(gè)V(MA)退出臨界區(qū)過橋;A方向上的行人通過獨(dú)木橋P(MA)實(shí)現(xiàn)對(duì)臨界資源countA的互斥訪問countA=countA1當(dāng)A方向上的行人已經(jīng)通過了獨(dú)木橋時(shí),則A方向上在獨(dú)木橋上的行人數(shù)需要減少1個(gè)if(countA==0)如果A方向上在獨(dú)木橋上的行人數(shù)減少到0,則V
6、(mutex)需要釋放獨(dú)木橋臨界資源,喚醒第一個(gè)由于在等待獨(dú)木橋而處于等待狀態(tài)的B方向上過獨(dú)木橋的行人進(jìn)程(如果此進(jìn)程存在)V(MA)退出臨界區(qū)processB_direction_cross_bridge_personB方向上過獨(dú)木橋的行人進(jìn)程方向上過獨(dú)木橋的行人進(jìn)程P(MB)實(shí)現(xiàn)對(duì)臨界資源countB的互斥訪問當(dāng)B方向上沒有行人過獨(dú)木橋時(shí),這時(shí)有可能存在A方向上的行人在過獨(dú)木橋。if(countB==0)P(mutex)如果當(dāng)前獨(dú)木
7、橋正在被使用,說明如果當(dāng)前獨(dú)木橋正在被使用,說明A方向上的行人正在過橋,則方向上的行人正在過橋,則B方向上的行人方向上的行人必須等待。必須等待。countB=countB1當(dāng)A方向上沒有行人過橋時(shí),則方向上沒有行人過橋時(shí),則B方向上的行人可以過獨(dú)木橋。因此方向上的行人可以過獨(dú)木橋。因此B方向上已在獨(dú)木橋上的行人數(shù)增加方向上已在獨(dú)木橋上的行人數(shù)增加1個(gè)V(MB)退出臨界區(qū)采用信號(hào)量機(jī)制描述司機(jī)與售票員之間的同步算法如下:SemapheS1
8、S2首先定義兩個(gè)信號(hào)量S1和S2S1.value=0S2.value=0cobeginprocessdriver()processconduct()while(1)while(1)P(S1)關(guān)車門啟動(dòng)汽車V(S1)正常行車售票到站停車P(S2)V(S2)開車門上下乘客coend我們來分析這個(gè)過程,首先將信號(hào)量S1和S2的初值都設(shè)為0.然后進(jìn)行以下分析:1.P(S1):S1.value=S1.value1=10,那么司機(jī)進(jìn)程就自己阻塞起來
9、,等待售票員進(jìn)程,售票員關(guān)車門。2.V(S1):S1.value=S1.value1=0=0,喚醒司機(jī)進(jìn)程,那么司機(jī)就開始啟動(dòng)汽車、正常行車;在此期間,售票員也可以同時(shí)進(jìn)行售票。3.P(S2):S2.value=S2.value1=10,那么售票員在售完票后,售票員進(jìn)程就會(huì)自己阻塞起來,等待司機(jī)進(jìn)程。這樣就能避免當(dāng)司機(jī)還沒到站停車時(shí),售票員就已經(jīng)將車門打開了。而這是不允許的。4.V(S2):S2.value=S2.value1=0=0,
10、司機(jī)到站停車之后,就喚醒售票員進(jìn)程,那么售票員就開啟車門讓乘客上下車。那么這個(gè)進(jìn)程就完成了。3030一個(gè)閱覽室共有一個(gè)閱覽室共有100100個(gè)座位,用一張表來管理,每個(gè)表目記錄座位號(hào)和讀者姓名。個(gè)座位,用一張表來管理,每個(gè)表目記錄座位號(hào)和讀者姓名。讀者進(jìn)入時(shí)要先在表上登記,離開時(shí)要注銷登記。試寫出讀者讀者進(jìn)入時(shí)要先在表上登記,離開時(shí)要注銷登記。試寫出讀者“進(jìn)入進(jìn)入”和“注銷注銷”之間的同步算法。間的同步算法。答:讀者的動(dòng)作有兩個(gè),一是填
11、表進(jìn)入閱覽室讀書,這時(shí)要考慮閱覽室里是否有座位;二是讀者答:讀者的動(dòng)作有兩個(gè),一是填表進(jìn)入閱覽室讀書,這時(shí)要考慮閱覽室里是否有座位;二是讀者閱讀完畢,需要注銷登記再離開閱覽室,這時(shí)的操作要考慮閱覽室里是否有讀者存在。讀者在閱閱讀完畢,需要注銷登記再離開閱覽室,這時(shí)的操作要考慮閱覽室里是否有讀者存在。讀者在閱覽室讀書時(shí),由于沒有引起資源的變動(dòng),不算動(dòng)作變化。覽室讀書時(shí),由于沒有引起資源的變動(dòng),不算動(dòng)作變化。因此,設(shè)置算法所涉及的三個(gè)信號(hào)量
12、:因此,設(shè)置算法所涉及的三個(gè)信號(hào)量:empty資源信號(hào)量資源信號(hào)量——表示閱覽室里的空座位的數(shù)目,表示閱覽室里的空座位的數(shù)目,初值為初值為100;full資源信號(hào)量資源信號(hào)量——表示閱覽室里有人的座位的數(shù)目(或表示閱覽室里的讀者的數(shù)目)表示閱覽室里有人的座位的數(shù)目(或表示閱覽室里的讀者的數(shù)目),初值為初值為0;mutex互斥信號(hào)量互斥信號(hào)量——表示對(duì)登記表這個(gè)臨界資源的互斥訪問,初值設(shè)為表示對(duì)登記表這個(gè)臨界資源的互斥訪問,初值設(shè)為1。使
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)第二章部分答案
- 操作系統(tǒng)第二章作業(yè)答案
- 操作系統(tǒng)第二章課后答案
- 操作系統(tǒng)第二章習(xí)題答案
- 第二章 操作系統(tǒng)
- 操作系統(tǒng)習(xí)題第二章
- 第二章操作系統(tǒng)學(xué)案
- 第二章 windows操作系統(tǒng)操作題
- 第二章操作系統(tǒng)的邏輯結(jié)構(gòu)
- 第二章-操作系統(tǒng)windows-xp
- 操作系統(tǒng)第二章進(jìn)程管理測(cè)驗(yàn)題答案
- 計(jì)應(yīng)--第二章-windows-7操作系統(tǒng)-試題
- 第二章部分試題及答案
- 環(huán)境監(jiān)測(cè)第二章部分答案
- 操作系統(tǒng)部分答案
- 計(jì)算機(jī)練習(xí)冊(cè)第二章 windows xp操作系統(tǒng)
- 第二章 中醫(yī)操作
- 環(huán)境監(jiān)測(cè)第二章部分習(xí)題答案
- 專升本(計(jì)算機(jī)專業(yè)課件)操作系統(tǒng)課件第二章管程
- 第二章 中醫(yī)操作_15662
評(píng)論
0/150
提交評(píng)論