版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
操作系統(tǒng)概念進程同步問題實例1本章主要內容經典同步問題生產者-消費者問題:緩沖區(qū)問題嗜睡理發(fā)師問題吸煙者問題吃水果問題21經典同步問題有限緩沖問題讀者-作者問題哲學家進餐問題3有限緩沖問題(生產者-消費者問題)do{ … produceaniteminnextp … wait(empty); wait(mutex); … addnextptobuffer … signal(mutex); signal(full);}while(1);do{ wait(full); wait(mutex); … removeanitemfrombuffertonextc … signal(mutex); signal(empty); … consumetheiteminnextc …}while(1);4讀者-作者問題一個數(shù)據(jù)對象可以為多個并發(fā)進程所共享。其中有的進程可能只需要讀共享對象的內容,而其他進程可能要更新共享對象(即讀和寫)。將只對讀感興趣的進程稱為讀者其他則稱為作者第一讀者-作者問題僅當無讀者等待時,才允許寫者執(zhí)行第二讀者-作者問題在讀者與作者同時申請資源的時候,寫者優(yōu)先。5第一讀者-作者問題wait(wrt);…writingisperformed…signal(wrt);wait(mutex);readcount++;if(readcount==1) wait(wrt);signal(mutex);…readingisperformed…wait(mutex);readcount--;if(readcount==0) signal(wrt);signal(mutex);6哲學家就餐問題7
共享數(shù)據(jù)semaphorechopstick[5];哲學家i結構do{ wait(chopstick[i]); wait(chopstick[(I+1)%5]); … eat … signal(chopstick[i]); signal(chopstick[(I+1)%5]); … think …}while(1);82緩沖區(qū)問題(生產者-消費者問題)三個進程P1、P2、P3互斥使用一個包含N(N>0)個單元的緩沖區(qū)。P1每次用produce()生成一個正整數(shù)并用put()送入緩沖區(qū)某一個空單元中;P2每次用getodd()從該緩沖區(qū)中取出一個奇數(shù)并用countodd()統(tǒng)計奇數(shù)個數(shù);P3每次用geteven()從該緩沖區(qū)中取出一個偶數(shù)并用counteven()統(tǒng)計偶數(shù)個數(shù)。請用信號量機制實現(xiàn)這三個進程的同步與互斥活動,并說明所定義的信號量的含義。要求用偽代碼描述。9緩沖區(qū)問題求解(1)緩沖區(qū)是一互斥資源,因此設互斥信號量mutex。(2)同步問題:P1、P2因為奇數(shù)的放置與取用而同步,設同步信號量odd;P1、P3因為偶數(shù)的放置于取用而同步,設同步信號量even;P1、P2、P3因為共享緩沖區(qū),設同步信號量empty。semaphoremutex=1,odd=0,even=0,empty=N;ProcessP1:while(true){number=produce();P(empty);P(mutex);put();V(mutex);Ifnumber%2==0V(even);elseV(odd);}10緩沖區(qū)問題求解ProcessP2:while(true){P(odd);P(mutex);getodd();V(mutex);V(empty);countodd();}ProcessP3:while(true){P(even);P(mutex);geteven();V(mutex);V(empty);counteven();}113嗜睡理發(fā)師問題一個理發(fā)店里有一個理發(fā)師,一張理發(fā)椅子,多張等候的椅子,當沒有顧客的時候,理發(fā)師就睡覺。當一個顧客來到店里時,如果理發(fā)師在睡覺,則叫醒理發(fā)師;否則便坐著等;如果等待的椅子都滿了就離開。
123嗜睡理發(fā)師問題int
waiting=0;//等候理發(fā)的顧客數(shù)
int
chairs=5;
//為顧客準備的椅子數(shù)
semaphore
customers=0,barbers=0,mutex=1;
Barber進程:while(TRUE){P(cutomers);//若無顧客,理發(fā)師睡眠P(mutex);//進程互斥,要求顧客等候
waiting=waiting–1;//等候顧客數(shù)少一個V(barbers);//理發(fā)師去為一個顧客理發(fā)V(mutex);//開放臨界區(qū)cut-hair();//正在理發(fā)(非臨界區(qū)操作)}Customer進程:P(mutex);//進入臨界區(qū)if(waiting<chairs){waiting=waiting+1;//等候顧客數(shù)加1V(customers);//必要的話喚醒理發(fā)師V(mutex);//開放臨界區(qū)P(barbers);//無理發(fā)師,顧客坐著養(yǎng)神get-haircut();//一個顧客坐下等候服務}elseV(mutex);//人滿了,上自習去!134吸煙者問題三個吸煙者在一間房間內,還有一個香煙供應者。(1)為了制造并抽掉香煙,每個吸煙者需要三樣東西:煙草、紙和火柴。(2)供應者有豐富的貨物提供。(3)三個吸煙者中,第一個有自己的煙草,第二個有自己的紙,第三個有自己的火柴。(4)供應者將兩樣東西放在桌子上,允許一個吸煙者進行對健康不利的吸煙。當吸煙者完成吸煙后喚醒供應者,供應者再放兩樣東西(隨機地)在桌面上,然后喚醒另一個吸煙者。試為吸煙者和供應者用同步法解決問題。144吸煙者問題供應者需要3個進程X:提供tobacco和matchY:提供match和wrapperZ:提供wrapper和tobacco3個吸煙者進程A:只有tobaccoB:只有matchC:只有wrapper則一次只能有X,Y,Z中的一個執(zhí)行(供應);X,Y,Z只能在消耗完一個后才能供應下一個154吸煙者問題Semaphoretobacco=0,match=0,wrapper=0,mutex=1;ProcessX:P(mutex);V(tobacco);V(match);ProcessY:P(mutex);V(match);V(wrapper);ProcessZ:P(mutex);V(wrapper);V(tobacco);ProcessA:P(match);P(wrapper);Smoke;V(mutex);ProcessB:P(wrapper);P(tobacco);Smoke;V(mutex);ProcessC:P(tobacco);P(match);Smoke;V(mutex);16桌上有一空盤,允許存放一只水果。爸爸向盤中放蘋果,媽媽向盤中放桔子,兒子專等吃盤中的桔子,女兒專等吃盤中的蘋果。規(guī)定當盤空時一次只能放一只水果供吃者取用,請用P、V原語實現(xiàn)爸爸、媽媽、兒子、女兒三個并發(fā)進程的同步。5吃水果問題plate爸爸媽媽兒子女兒175吃水果問題應設置三個信號量S、So、Sa,信號量S表示盤子是否為空,其初值為1;信號量So表示盤中是否有桔子,其初值為0;信號量Sa表示盤中是否有蘋果,其初值為0。同步描述如下:SemaphorS=1,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中語文統(tǒng)編版(部編版)必修 上冊第六單元12《拿來主義》課堂實錄
- 快手電商2025版網紅直播帶貨合作合同范本3篇
- 2025版民爆物品裝卸作業(yè)安全評估與認證合同4篇
- 鄭州美術學院《互動光媒與空間》2023-2024學年第一學期期末試卷
- 正德職業(yè)技術學院《中國古代文學(2)》2023-2024學年第一學期期末試卷
- 2025年度倉庫倉儲設施維修與保養(yǎng)合同3篇
- 2025版專業(yè)體驗館消防安裝人工費用結算合同3篇
- 2024影視制作合同制作內容補充協(xié)議
- 2025年度商鋪租賃合同租賃期滿資產返還與驗收標準4篇
- 2025版雙向轉診醫(yī)療服務績效考核合同3篇
- 《電影之創(chuàng)戰(zhàn)紀》課件
- 社區(qū)醫(yī)療抗菌藥物分級管理方案
- 開題報告-鑄牢中華民族共同體意識的學校教育研究
- 《醫(yī)院標識牌規(guī)劃設計方案》
- 夜市運營投標方案(技術方案)
- (高清版)DZT 0282-2015 水文地質調查規(guī)范(1:50000)
- 《紅樓夢》禮儀研究
- 會議分組討論主持詞
- 動火作業(yè)審批表
- 新能源汽車火災事故處置程序及方法
- 教學查房及體格檢查評分標準
評論
0/150
提交評論