版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實例:同步問題,同步問題1:理發(fā)師問題,一個理發(fā)店由一個有幾張椅子的等待室和一個放有一張理發(fā)椅的理發(fā)室組成。 問題分析: 題目中要求描述理發(fā)師和顧客的行為,因此需要兩類進(jìn)程Barber ()和Customer()分別描述理發(fā)師和顧客的行為。當(dāng)理發(fā)師看報時顧客進(jìn)來需要喚醒理發(fā)師為其理發(fā),當(dāng)有顧客時理發(fā)師為其理發(fā),沒有的時候理發(fā)師看報,因此理發(fā)師和顧客之間是同步的關(guān)系,由于每次理發(fā)師只能為一個人理發(fā),且可供等侯的椅子有限只有n個,即理發(fā)師和椅子是臨界資源,所以顧客之間是互斥的關(guān)系。,同步問題1:理發(fā)師問題,1 若沒有要理發(fā)的顧客,則理發(fā)師去睡覺;2 若一顧客進(jìn)入理發(fā)店,理發(fā)師正在為別人理發(fā),且等待
2、室有空椅子,則該顧客就找張椅子按順序坐下;3 若一顧客進(jìn)入理發(fā)店,理發(fā)師在睡覺,則叫醒理發(fā)師為該顧客理發(fā);4 若一顧客進(jìn)入理發(fā)店且所有椅子都被占用了,則該顧客就離開。,同步問題1:理發(fā)師問題,互斥信號量:mutex ,初始值為1; 信號量customers用來記錄等候理發(fā)的顧客數(shù),并用作阻塞理發(fā)師進(jìn)程,初值為0; barbers用來記錄正在等候顧客的理發(fā)師數(shù),并用作阻塞顧客進(jìn)程,初值為0; 這里barbers只有兩種取值, 0或1; 臨界變量:waiting由理發(fā)師進(jìn)程和顧客進(jìn)程共同訪問,用來記錄在椅子上等著的顧客數(shù);,同步問題1:理發(fā)師問題,var waiting : integer:=0;
3、 /*等候理發(fā)的顧客數(shù)*/ CHAIRS:integer:=n; /*為顧客準(zhǔn)備的椅子數(shù)*/ VAR customers, barbers,mutex : semaphore:=0,0,1; Procedure barber; begin while(TRUE); /*理完一人,還有顧客嗎?*/ P(cutomers); /*若無顧客,理發(fā)師睡眠*/ P(mutex); /*進(jìn)程互斥*/ waiting := waiting 1; /*等候顧客數(shù)少一個*/ V(barbers); /*理發(fā)師去為一個顧客理發(fā)*/ V(mutex); /*開放臨界區(qū)*/ cut-hair( ); /*正在理發(fā)*/
4、 end;,同步問題1:理發(fā)師問題,procedure customer begin P(mutex); /*進(jìn)程互斥*/ if customersn then waiting := waiting+1; /* 等候顧客數(shù)加1*/ V(customers); /*必要的話喚醒理發(fā)師*/ V(mutex); /*開放臨界區(qū)*/ P(barbers); /*無理發(fā)師, 顧客坐著養(yǎng)神*/ get-haircut( ); /*一個顧客坐下等理發(fā)*/ else V(mutex); /*人滿了,走吧!*/ end;,同步問題2,一家四口父親、母親、兒子、女兒,現(xiàn)有一個盤子,父親只往盤子里放蘋果,母親只往盤
5、子里放桔子,兒子只吃桔子,女兒只吃蘋果。盤子中只能放一只水果。請用信號量機制分別為父親、母親、兒子、女兒編寫程序,使他們不發(fā)生沖突。,同步問題2,解: semaphore mutex,apple,orage,empty; mutex.value=1; apple . value=0; orage .value = 0; empty . value = 1 ; Void father() Wait(empty); wait(mutex); put an apple on the disk; signal(mutex); signal(apple); ,同步問題2,Void mather() Wait(empty); wait(mutex); put an orange on the disk; signal(mutex); signal(orange); ,同步問題2,Void son() Wait(apple); Wait(mutex); Get an apple from disk; Signal(mutex); Signal(empty); ,同步問題2,Void dau
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 懸挑腳手架架專項施工方案
- 2019年安全工程師考試《安全生產(chǎn)技術(shù)》題庫練習(xí)試卷 含答案
- 病案首頁質(zhì)量控制與管理實施方案
- 2025年新版巧填十一號題目及答案解析
- 2026年合法代孕國家服務(wù)合同
- 2026年民宿短租服務(wù)合同
- 2026年醫(yī)用機器人手術(shù)導(dǎo)航系統(tǒng)專利實施許可合同
- 2026年建筑醫(yī)院寶石館合同
- 2026年電子戰(zhàn)領(lǐng)域針對敵對行為的惡意代碼研究題集
- 解密地球面貌 構(gòu)建空間思維-七年級地理大單元教學(xué)設(shè)計與中考能力進(jìn)階方案
- 江西省上饒市2023-2024學(xué)年高二上學(xué)期期末教學(xué)質(zhì)量測試物理試卷(解析版)
- GB/T 3487-2024乘用車輪輞規(guī)格系列
- CJT 313-2009 生活垃圾采樣和分析方法
- 人工智能在塑料零件設(shè)計中的應(yīng)用
- 《劇院魅影:25周年紀(jì)念演出》完整中英文對照劇本
- 蔣詩萌小品《誰殺死了周日》臺詞完整版
- tubeless胸科手術(shù)麻醉
- 物業(yè)保潔保安培訓(xùn)課件
- 人教版初中英語七至九年級單詞匯總表(七年級至九年級全5冊)
- 起重機械的安全圍擋與隔離區(qū)域
- 水泥直塑施工方案
評論
0/150
提交評論