![進(jìn)程同步問題實(shí)例_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/20/8f6e6ea2-29fa-42f5-8656-bae5eb775a04/8f6e6ea2-29fa-42f5-8656-bae5eb775a041.gif)
![進(jìn)程同步問題實(shí)例_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/20/8f6e6ea2-29fa-42f5-8656-bae5eb775a04/8f6e6ea2-29fa-42f5-8656-bae5eb775a042.gif)
![進(jìn)程同步問題實(shí)例_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/20/8f6e6ea2-29fa-42f5-8656-bae5eb775a04/8f6e6ea2-29fa-42f5-8656-bae5eb775a043.gif)
![進(jìn)程同步問題實(shí)例_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/20/8f6e6ea2-29fa-42f5-8656-bae5eb775a04/8f6e6ea2-29fa-42f5-8656-bae5eb775a044.gif)
![進(jìn)程同步問題實(shí)例_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/20/8f6e6ea2-29fa-42f5-8656-bae5eb775a04/8f6e6ea2-29fa-42f5-8656-bae5eb775a045.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1操作系統(tǒng)概念進(jìn)程同步問題實(shí)例進(jìn)程同步問題實(shí)例2本章主要內(nèi)容n經(jīng)典同步問題經(jīng)典同步問題n生產(chǎn)者生產(chǎn)者-消費(fèi)者問題:緩沖區(qū)問題消費(fèi)者問題:緩沖區(qū)問題n嗜睡理發(fā)師問題嗜睡理發(fā)師問題n吸煙者問題吸煙者問題n吃水果問題吃水果問題 31 經(jīng)典同步問題n有限緩沖問題有限緩沖問題n讀者作者問題讀者作者問題n哲學(xué)家進(jìn)餐問題哲學(xué)家進(jìn)餐問題4有限緩沖問題(生產(chǎn)者-消費(fèi)者問題)do produce an item in nextpwait(empty);wait(mutex);add nextp to buffersignal(mutex);signal(full); while (1);do wait(full)
2、;wait(mutex);remove an item from buffer to nextcsignal(mutex);signal(empty);consume the item in nextc while (1);5讀者作者問題n一個(gè)數(shù)據(jù)對象可以為多個(gè)并發(fā)進(jìn)程所共享。其一個(gè)數(shù)據(jù)對象可以為多個(gè)并發(fā)進(jìn)程所共享。其中有的進(jìn)程可能只需要讀共享對象的內(nèi)容,而中有的進(jìn)程可能只需要讀共享對象的內(nèi)容,而其他進(jìn)程可能要更新共享對象(即讀和寫)。其他進(jìn)程可能要更新共享對象(即讀和寫)。n將只對讀感興趣的進(jìn)程稱為讀者將只對讀感興趣的進(jìn)程稱為讀者n其他則稱為作者其他則稱為作者n第一讀者作者問題第一讀者作者問
3、題n僅當(dāng)無讀者等待時(shí),才允許寫者執(zhí)行僅當(dāng)無讀者等待時(shí),才允許寫者執(zhí)行n第二讀者作者問題第二讀者作者問題n在讀者與作者同時(shí)申請資源的時(shí)候,寫者優(yōu)先。在讀者與作者同時(shí)申請資源的時(shí)候,寫者優(yōu)先。6第一讀者作者問題wait(wrt);writing is performedsignal(wrt);wait(mutex);readcount +;if (readcount = 1)wait(wrt);signal(mutex);reading is performedwait(mutex);readcount -;if (readcount = 0)signal(wrt);signal(mutex);7
4、哲學(xué)家就餐問題8 n共享數(shù)據(jù)共享數(shù)據(jù)nsemaphore chopstick5;n哲學(xué)家哲學(xué)家i結(jié)構(gòu)結(jié)構(gòu)do wait(chopsticki);wait(chopstick(I + 1) % 5);eatsignal(chopsticki);signal(chopstick(I + 1) % 5);think while (1);92 緩沖區(qū)問題(生產(chǎn)者-消費(fèi)者問題)n三個(gè)進(jìn)程三個(gè)進(jìn)程P1、P2、P3 互斥使用一個(gè)包含互斥使用一個(gè)包含N(N0)個(gè)單個(gè)單元的緩沖區(qū)。元的緩沖區(qū)。P1 每次用每次用produce()生成一個(gè)正整數(shù)并生成一個(gè)正整數(shù)并用用put()送入緩沖區(qū)某一個(gè)空單元中;送入緩沖區(qū)某
5、一個(gè)空單元中;P2 每次用每次用getodd()從該緩沖區(qū)中取出一個(gè)奇數(shù)并用從該緩沖區(qū)中取出一個(gè)奇數(shù)并用countodd()統(tǒng)計(jì)奇數(shù)個(gè)數(shù);統(tǒng)計(jì)奇數(shù)個(gè)數(shù);P3 每次用每次用geteven()從該緩沖區(qū)中取從該緩沖區(qū)中取出一個(gè)偶數(shù)并用出一個(gè)偶數(shù)并用counteven()統(tǒng)計(jì)偶數(shù)個(gè)數(shù)。請用信號統(tǒng)計(jì)偶數(shù)個(gè)數(shù)。請用信號量機(jī)制實(shí)現(xiàn)這三個(gè)進(jìn)程的同步與互斥活動,并說明所量機(jī)制實(shí)現(xiàn)這三個(gè)進(jìn)程的同步與互斥活動,并說明所定義的信號量的含義。要求用偽代碼描述。定義的信號量的含義。要求用偽代碼描述。10緩沖區(qū)問題求解n(1) 緩沖區(qū)是一互斥資源,因此設(shè)互斥信號量緩沖區(qū)是一互斥資源,因此設(shè)互斥信號量mutex。n(2)
6、同步問題:同步問題:P1、P2 因?yàn)槠鏀?shù)的放置與取用而同步,設(shè)同步信號量因?yàn)槠鏀?shù)的放置與取用而同步,設(shè)同步信號量odd;P1、P3 因?yàn)榕紨?shù)的放置于取用而同步,設(shè)同步信號量因?yàn)榕紨?shù)的放置于取用而同步,設(shè)同步信號量even;P1、P2、P3 因?yàn)楣蚕硪驗(yàn)楣蚕砭彌_區(qū),設(shè)同步信號量緩沖區(qū),設(shè)同步信號量empty。nsemaphore mutex = 1,odd = 0,even = 0,empty = N;nProcess P1: nwhile(true)n number = produce();n P(empty);P(mutex);n put();n V(mutex);n If number %
7、 2 = 0n V(even);n elsen V(odd);n11緩沖區(qū)問題求解nProcess P2:nwhile(true)n P(odd); P(mutex);n getodd();n V(mutex);V(empty);n countodd();nnProcess P3:nwhile(true)n P(even); P(mutex);n geteven();n V(mutex);V(empty);n counteven();n123 嗜睡理發(fā)師問題n一個(gè)理發(fā)店里有一個(gè)理發(fā)師,一張理發(fā)椅子,一個(gè)理發(fā)店里有一個(gè)理發(fā)師,一張理發(fā)椅子,多張等候的椅子,當(dāng)沒有顧客的時(shí)候,理發(fā)師多張等候的椅子,
8、當(dāng)沒有顧客的時(shí)候,理發(fā)師就睡覺。當(dāng)一個(gè)顧客來到店里時(shí),如果理發(fā)師就睡覺。當(dāng)一個(gè)顧客來到店里時(shí),如果理發(fā)師在睡覺,則叫醒理發(fā)師;否則便坐著等;如果在睡覺,則叫醒理發(fā)師;否則便坐著等;如果等待的椅子都滿了就離開。等待的椅子都滿了就離開。 133 嗜睡理發(fā)師問題nint waiting=0 ; /等候理發(fā)的顧客數(shù)等候理發(fā)的顧客數(shù) int chairs=5; /為顧客準(zhǔn)備的椅子數(shù)為顧客準(zhǔn)備的椅子數(shù) semaphore customers=0, barbers=0,mutex=1; Barber進(jìn)程:進(jìn)程:while(TRUE) P(cutomers); /若無顧客若無顧客,理發(fā)師睡眠理發(fā)師睡眠 P(m
9、utex); /進(jìn)程互斥進(jìn)程互斥,要求顧客等候要求顧客等候 waiting = waiting 1;/等候顧客數(shù)少一個(gè)等候顧客數(shù)少一個(gè) V(barbers); /理發(fā)師去為一個(gè)顧客理發(fā)理發(fā)師去為一個(gè)顧客理發(fā) V(mutex); /開放臨界區(qū)開放臨界區(qū) cut-hair( ); /正在理發(fā)(非臨界區(qū)操作)正在理發(fā)(非臨界區(qū)操作)Customer進(jìn)程:進(jìn)程:P(mutex); /進(jìn)入臨界區(qū)進(jìn)入臨界區(qū)if (waitingchairs) waiting = waiting+1; /等候顧客數(shù)加等候顧客數(shù)加1 V(customers); /必要的話喚醒理發(fā)師必要的話喚醒理發(fā)師 V(mutex); /開
10、放臨界區(qū)開放臨界區(qū) P(barbers); /無理發(fā)師無理發(fā)師, 顧客坐著養(yǎng)神顧客坐著養(yǎng)神 get-haircut( ); /一個(gè)顧客坐下等候服務(wù)一個(gè)顧客坐下等候服務(wù)else V(mutex); /人滿了,上自習(xí)去!人滿了,上自習(xí)去!144 吸煙者問題三個(gè)吸煙者在一間房間內(nèi),還有一個(gè)香煙供應(yīng)者。三個(gè)吸煙者在一間房間內(nèi),還有一個(gè)香煙供應(yīng)者。(1)(1)為了制造并抽掉香煙,每個(gè)吸煙者需要三樣?xùn)|西:煙草、紙和火為了制造并抽掉香煙,每個(gè)吸煙者需要三樣?xùn)|西:煙草、紙和火柴。柴。(2)(2)供應(yīng)者有豐富的貨物提供。供應(yīng)者有豐富的貨物提供。(3)(3)三個(gè)吸煙者中,第一個(gè)有自己的煙草,第二個(gè)有自己的紙,第三
11、三個(gè)吸煙者中,第一個(gè)有自己的煙草,第二個(gè)有自己的紙,第三個(gè)有自己的火柴。個(gè)有自己的火柴。(4)(4)供應(yīng)者將兩樣?xùn)|西放在桌子上,允許一個(gè)吸煙者進(jìn)行對健康不利供應(yīng)者將兩樣?xùn)|西放在桌子上,允許一個(gè)吸煙者進(jìn)行對健康不利的吸煙。當(dāng)吸煙者完成吸煙后喚醒供應(yīng)者,供應(yīng)者再放兩樣?xùn)|西的吸煙。當(dāng)吸煙者完成吸煙后喚醒供應(yīng)者,供應(yīng)者再放兩樣?xùn)|西(隨機(jī)地)在桌面上,然后喚醒另一個(gè)吸煙者。(隨機(jī)地)在桌面上,然后喚醒另一個(gè)吸煙者。試為吸煙者和供應(yīng)者用同步法解決問題。試為吸煙者和供應(yīng)者用同步法解決問題。154 吸煙者問題供應(yīng)者需要供應(yīng)者需要3個(gè)進(jìn)程個(gè)進(jìn)程 X:提供:提供tobacco和和match Y:提供:提供matc
12、h和和wrapper Z:提供:提供wrapper和和tobacco3個(gè)吸煙者進(jìn)程個(gè)吸煙者進(jìn)程 A:只有:只有tobacco B:只有:只有match C:只有:只有wrapper則則 一次只能有一次只能有X,Y,Z中的一個(gè)執(zhí)行中的一個(gè)執(zhí)行(供應(yīng)供應(yīng));X,Y,Z只能在只能在消耗完一個(gè)后才能供應(yīng)下一個(gè)消耗完一個(gè)后才能供應(yīng)下一個(gè)164 吸煙者問題Semaphore tobacco=0, match=0, wrapper=0, mutex=1;Process X:P(mutex);V(tobacco);V(match);Process Y:P(mutex);V(match);V(wrapper);
13、Process Z:P(mutex);V(wrapper);V(tobacco);Process A:P(match);P(wrapper);Smoke;V(mutex);Process B:P(wrapper);P(tobacco);Smoke;V(mutex);Process C:P(tobacco);P(match);Smoke;V(mutex);17 桌上有一空盤,允許存放一只水果。爸爸向盤中放蘋桌上有一空盤,允許存放一只水果。爸爸向盤中放蘋果,媽媽向盤中放桔子,兒子專等吃盤中的桔子,女果,媽媽向盤中放桔子,兒子專等吃盤中的桔子,女兒專等吃盤中的蘋果。規(guī)定當(dāng)盤空時(shí)一次只能放一只兒專等吃盤中的蘋果。規(guī)定當(dāng)盤空時(shí)一次只能放一只水果供吃者取用,請用水果供吃者取用,請用P P、V V原語實(shí)現(xiàn)爸爸、媽媽、兒原語實(shí)現(xiàn)爸爸、媽媽、兒子、女兒三個(gè)并發(fā)進(jìn)程的同步。子、女兒三個(gè)并發(fā)進(jìn)程的同步。5 吃水果問題plate爸爸爸爸媽媽媽媽兒子兒子女兒女兒185 吃水果問題n應(yīng)設(shè)置三個(gè)信號量應(yīng)設(shè)置三個(gè)信號量S、So、Sa,信號量,信號量S表示盤子是否為空,其初值表示盤子是否為空,其初值為為1;信號量;信號量So表示盤中是否有桔子,其初值為表示盤中是否有桔子,其初值為0;信號量;信號量Sa表示盤表示盤中是否有蘋果,其初值為中是否有蘋果,其初值為0。同步描述
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度酒吧環(huán)保設(shè)施建設(shè)與運(yùn)營維護(hù)合同
- 2025年度文化創(chuàng)意產(chǎn)業(yè)擔(dān)保合同執(zhí)行細(xì)則
- 2025年度婚慶婚禮主題設(shè)計(jì)服務(wù)合同樣本
- 2025年度電力設(shè)施運(yùn)維與供電服務(wù)合同范本
- 2025年國際貨物協(xié)約運(yùn)單規(guī)范執(zhí)行細(xì)則手冊
- 2025年度廣告媒體資源購買與廣告制作合同范本
- 2025年液體發(fā)酵成套設(shè)備行業(yè)深度研究分析報(bào)告
- 2025年度建筑消防工程設(shè)計(jì)咨詢勞務(wù)協(xié)議
- 2025年度住宅水電安裝與維修服務(wù)合同 - 副本
- 2025年聚脂漆包圓銅線行業(yè)深度研究分析報(bào)告
- 精裝修室內(nèi)施工組織部署
- 農(nóng)用拖拉機(jī)考試題庫
- GJB438C模板-軟件開發(fā)計(jì)劃(已按標(biāo)準(zhǔn)公文格式校準(zhǔn))
- 2023年政府采購評審專家考試真題及答案
- 云端數(shù)據(jù)加密與密鑰管理解決方案
- 毒麻藥品試題答案
- 《公路橋涵養(yǎng)護(hù)規(guī)范》(5120-2021)【可編輯】
- 醫(yī)療器械專業(yè)知識培訓(xùn)課件
- 傳統(tǒng)體育養(yǎng)生學(xué)
- DB4401∕T 33-2019 電梯托管標(biāo)準(zhǔn)化管理規(guī)范
- 醫(yī)院物業(yè)(保潔)技術(shù)服務(wù)投標(biāo)方案
評論
0/150
提交評論