




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、列出進程間的三種互相知道的程度,并簡單地給出各自的定義進程間相互不知道對方:這是一些獨立的進程,它們不會一起工作進程間接知道對方:進程間通過共享訪問某些對象,表現(xiàn)出一種合作關(guān)系進程直接知道對方:互相通信,用于合作完成某些活動1列出與競爭進程相關(guān)的三種控制問題,并簡單地給出各自的定義互斥:一次只允許一個進程訪問的臨界資源死鎖:進程間由于競爭資源而形成的一種僵局饑餓:雖然沒有發(fā)生死鎖,但是進程可能會被無限期地被拒絕訪問資源2列出對互斥的要求一次只允許一個進程進入臨界區(qū)一個在非臨界區(qū)停止的進程必須不干涉其他進程沒有死鎖或饑餓當(dāng)沒有進程在臨界區(qū)中時,任何需要進入臨界區(qū)的進程必須能夠立即進入(空閑讓進)
2、對相關(guān)進程的速度和處理器的數(shù)目沒有任何要求和限制一個進程駐留在臨界區(qū)中的時間必須是有限的3習(xí)題5.3const int n=50;int tally;void total() int count; for (count=1;count=n;count+) do tally+;4Void main tally=0; parbegin( total(),total() write(tally)5a.確定由此并發(fā)程序輸出的共享變量tally最 終的恰當(dāng)?shù)娜≈捣秶<俣ㄟM程可以任意的相對 速度向前推進并且tally的值一旦由一條獨立的機器指令裝入寄存器之后只能增加。b.假定任意數(shù)量的進程運許在a的假設(shè)
3、下平行執(zhí)行。這一修改對tally最終的值會有何影響?6執(zhí)行步驟:tally register register=regester+1 register tallytally的下限:tally register1 tally register2 register1=regester1+1 register2=regester2+1 register1 tally register2 tally 循環(huán)50次因此tally的下限是507tally的上限: tally register1 register1=regester1+1 register1 tally tally register2 reg
4、ister2=regester2+1 register2 tally . 循環(huán)50次因此tally的上限:1008b.假定任意數(shù)量的進程運許在a的假設(shè)下并行執(zhí)行。這一修改對tally最終的值會有何影響?結(jié)果:下限:50上限:50n(進程數(shù))9習(xí)題5.6互斥的另一種軟件方法是Lamport的面包店算法,之所以稱為面包店算法是因為該方法是基于面包店的經(jīng)驗或其他的商店的經(jīng)驗,在這些店里顧客在到達時得到一張有順序號的票,允許每個顧客輪流服務(wù)。算法如下:boolean choosingn;int numbern;10while(true) choosingi=true; numberi=1+getmax
5、(number,n); choosingi:=false; for (j=0;jn;j+); while (choosingj); while ( (numberj!=0)& (numberj,j) (numberi,i) ) ; ; numberi=0; ;11a.用文字描述算法;b.解釋此算法如何避免死鎖;c.解釋此算法如何加強互斥;choosing數(shù)組初始化為false,number數(shù)組初始化為0.每個數(shù)組的第i個元素可被進程i讀或?qū)懙珒H能被其他進程讀。表示(a,b)(c,d) 定義為(ac) 或 (a=c and bnap(int(random(1000*wander_time) p(
6、car_avail); v(car_taken); p(car_filled) p(passenger_released) od end passenger17process car(j:=1 to num_cars)do true-v(car_avail); p(car_taken); v(car_filled); nap(int(random(1000*ride_time) v(passenger_released) od end carend Jurassic_parkendverbatim18改正后的程序:var car_available:semaphore(:=n) passeng
7、er_wait:semaphore(:=0)passenger i: wandering for a random time; signal(passenger_wait); wait(car_available);car j: wait(passenger_wait); take passenger wandering signal(car_available) parbeginpassenger1;passenger2;passengerm;car1;car2;carn;parend19習(xí)題5.16考慮圖5.17。如果按照以下的順序改變程序中的相應(yīng)處程序的意思會改變嗎?a. wait(e)
8、; wait(s)b. signal(s);signal(n)c. wait(n);wait(s)d. signal(s);signal(e)20a.互換wait(e)和wait(s):結(jié)果:對于生產(chǎn)者進程來說,若wait(s)成功,則說明可以使用緩沖池。若wait(e)不成功說明沒有空緩沖區(qū)可用,此時生產(chǎn)者進程等待。對于消費者進程來說,若wait(n)成功,則說明緩沖池不空。若wait(s) 成功說明可以使用緩沖池,但此時由于生產(chǎn)者進程已將緩沖池占有,此時消費者進程等待。結(jié)果發(fā)生死鎖。b.意思不變c.同ad.意思不變21習(xí)題5.20這一問題給出了相應(yīng)三種進程的信號量的使用。圣誕老人(Sant
9、a Claus)在北極他的店里睡覺僅能被(1)、(2)喚醒。(1)所有九個馴鹿都結(jié)束它們的假期從南太平洋回來(2)僅當(dāng)制造玩具的小精靈有困難時將其喊醒為了讓圣誕老人多睡會兒覺,僅當(dāng)三個小精靈有問題時將其喚醒。當(dāng)三個小精靈有問題在解決時,其他小精靈想訪問圣誕老人時必須等其他人回來。22如果圣誕老人醒來發(fā)現(xiàn)有三個小精靈在他的店門外等候,同時最后一條馴鹿已經(jīng)從熱帶回來,圣誕老人已經(jīng)決定讓這些小精靈等到圣誕節(jié)之后,因為他的雪橇已經(jīng)準備好了,這一點比較重要(假定馴鹿不想離開熱帶,因此他們會停留到最后一刻)。最后一只馴鹿到達時圣誕老人必須出發(fā),以前到達的馴鹿在拉雪橇前在一個溫暖的小屋里等待。使用信號量解決
10、這一問題。23分析:三類進程:Santa Claus, reindeer, elvesSanta Claus: sleep in North Pole waken by reindeer(9個) Elves(3個)Reindeer:Vacation in tropics Return North Pole Christmas activityElves: Making toys having difficulties ,need help24Semaphore:wakesanta=0;喚醒圣誕老人的信號量 returnreindeer=1; 返回的馴鹿的計數(shù)器互斥信號量 needhelp=1;
11、需要幫助的Elves的計數(shù)器互斥信號量int :reindeercount=0,Elvescount=0;Santa Claus: while (true) wait(wakesanta); if(reindeercount=9) christmas activity; send_reindeer(); wait(returnreindeer); reindeercount=0; signal(returnreindeer);25 if(elvescount=3) help_Elves(); wait(needhelp); Elvescount=0; signal(needhelp); Rei
12、ndeer i while truevacation on tropics; return to North Pole; wait(returnreindeer); reindeercount+; if(reindeercount=9) signal(wakesanta) else wait_in_hut(); signal(returnreindeer) 26Elves i:making toys; wait(needhelp); Elvescount+; if elvescount=3 signal(wakesanta); else signal(needhelp);. 27習(xí)題6.4ar
13、1r2r3r40000075066222002032028習(xí)題6.4存在進程序列p1,p4,p5,p2,p3,能滿足安全性條件, 所以系統(tǒng)處于安全狀態(tài)29習(xí)題6.4C 系統(tǒng)當(dāng)前不會死鎖30習(xí)題6.4e:進程P3申請資源request3=(0,1,0,0) ,檢查request3Available、比較(0,1,0,0) (6,6,5,6),結(jié)果滿足條件,試分配,得到新狀態(tài):31習(xí)題6.4系統(tǒng)此時已經(jīng)不再處于安全狀態(tài)了,因此不同意該請求;如果同意請求P2、P3將有可能死鎖32習(xí)題6.5(1) w=2 1 0 0(2) 進程P3的請求小于W,標記P3,W2 1 0 00 1 2 02 2 2 0(
14、3)進程P2的請求小于W,標記P2,W2 2 2 02 0 0 14 2 2 1(4)進程P1的請求小于W,標記P1,W 4 2 2 1 0 0 1 04 2 3 2(5)所有的進程都標記了,所以系統(tǒng)不存在死鎖33習(xí)題6.10考慮一個具有150個單元的存儲器,分配給三個進程,分配情況如下: Process Max Hold 1 70 45 2 60 40 3 60 1534運用銀行家算法確定對于以下的請求是否是安全的。如果是,確定一個安全序列;如果不是,給出分配表中應(yīng)減少的請求。a.第四個進程到達,最大需求是60,初始要求是25b.第四個進程到達,最大需求是60,初始需求是3535a.第四個進
15、程到達,最大需求是60,初始要求是25Available=150-45-40-15-25=25process work hold w+h finish 1 25 45 70 true 2 70 40 110 true 3 110 15 125 true 4 125 25 150 true36b.第四個進程到達,最大需求是60,初始需求是3537習(xí)題6.13a.三個進程共享四個資源單元,這些資源每次只能釋放或請求一個。每個進程的最大需求是兩個。請給出不可能發(fā)生死鎖。b.N個進程共享M個資源單元,一次只能保留或釋放一個資源。每個進程對資源的最大需求不超過M個,所有最大需求總和不低于MN。請給出不可
16、能發(fā)生死鎖。38a.三個進程共享四個資源單元39習(xí)題6.17如果至少有一個左撇子或右撇子,則當(dāng)所有哲學(xué)家都準備拿起第一根筷子時,必定會有兩個哲學(xué)家競爭一根筷子而其中一個得不到處于等待,這樣必定有一個哲學(xué)家可以獲得兩根筷子,而不至于發(fā)生死鎖同樣也不會發(fā)生饑餓40習(xí)題6.18這個問題給出了哲學(xué)家進餐問題的精明之處以及用信號量寫出正確程序的困難所在。圖6.15所示為在最近的兩個OS文本中發(fā)現(xiàn)的哲學(xué)家進餐問題的一個解決方法。a.用文字描述這樣的方法是如何工作的。b.作者說:“這個方法是正確的同時也允許任意最大數(shù)量的哲學(xué)家?!北M管這樣的方法防止了死鎖,但它卻不是正確的,因為饑餓還是有可能的。試給出一個反例。41提示:考慮5個哲學(xué)家的情況。假定
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 分期購車銀行合同范本
- 兼職廚師勞務(wù)合同范本
- 代理建賬合同范本
- 入職各種合同范本
- 2025年湖南a2貨運從業(yè)資格證考試
- 介紹客戶返利合同范本
- 農(nóng)村住房建筑合同范本
- 勞務(wù)合同范本英文
- 農(nóng)田托管合同范本
- 凍庫修理合同范本
- 2024年宜昌伍家新城投資控股集團有限公司招聘筆試沖刺題(帶答案解析)
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案1套
- 2024年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫新版
- DL-T 1476-2023 電力安全工器具預(yù)防性試驗規(guī)程
- 飛灰處置及資源化綜合利用項目可行性研究報告模板-備案拿地
- 2024年咨詢工程師考試大綱
- 免疫治療皮疹護理查房
- 小學(xué)六年級開學(xué)第一課課件二篇
- 2024年棉柔巾行業(yè)市場趨勢分析
- 2024年邵陽職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 老年期譫妄課件
評論
0/150
提交評論