




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2.4典進(jìn)程的同步問生產(chǎn)者—消費者問哲學(xué)家進(jìn)餐讀者—一、“生產(chǎn)者—消費者”問問題描述 一、“生產(chǎn)者—消費者”問緩沖緩沖生產(chǎn)生產(chǎn)一個產(chǎn)取出一個產(chǎn)定義兩個同步信號量empty——表示緩沖區(qū)是否為空,初值為n。full——表示緩沖區(qū)中是否為滿,初值為0。一、“生產(chǎn)者—消費者”問生產(chǎn)者進(jìn)程}
消費產(chǎn)}一、“生產(chǎn)者—消費者”問M個生產(chǎn)者,K個消費者,公用有n個緩沖區(qū)的緩沖一、“生產(chǎn)者—消費者”問P1,P2,…,Pm,一群消費者進(jìn)程C1,C2,…,Ck,沖池未滿,生產(chǎn)者就可以把產(chǎn)品送入緩沖區(qū),類似地,只要緩沖池未空,消費者便可以從緩沖區(qū)取走產(chǎn)品并消耗它。生產(chǎn)者和消費者的同步關(guān)系將生產(chǎn)者向滿的緩沖池輸送產(chǎn)品,也消費者從空“生產(chǎn)者—消費者”問題的解設(shè)置兩個同步信號量及一個互斥信號empty:說明空緩沖區(qū)的數(shù)目,其初值為緩沖池的大小n,表示消費者已把緩沖池中全部產(chǎn)品取走,有n個空緩沖區(qū)可用。full:說明滿緩沖區(qū)的數(shù)目(即產(chǎn)品數(shù)目),初值為0,表示生產(chǎn)者尚未把產(chǎn)品放入緩沖池,有0個滿緩沖區(qū)可用。mutex:說明該緩沖池是一臨界資源,必須互斥“生產(chǎn)者—消費者”問題的解“生產(chǎn)者—消費者”問題的同步算法描述semaphorefull=0;/*表示滿緩沖區(qū)的數(shù)目*/semaphoreempty=n;/*表示空緩沖區(qū)的數(shù)目*/semaphoremutex=1;/*表示對緩沖池進(jìn)行操作的互斥信號量{}{{in=(in+1)modn;}}
{{nextc=Buffer[out];out=(out+1)modn;消費nextc中的產(chǎn)}}“生產(chǎn)者-消費者”問題中應(yīng)注互斥信號量的P、V操作在每一進(jìn)程中必須成對出現(xiàn)。對資源信號量(full,empty)的P、V操作也必須成對出現(xiàn),但可分別處于不同的程序中。多個P先執(zhí)行資源信號量的P操作,再執(zhí)行互斥信“生產(chǎn)者-消費者”問題中應(yīng)注它是一個同步它是一互斥問 用管程機(jī)制解決生產(chǎn)者—1、建立Producer-consumer(PC)管管程notfull表管程notfull表示notempty示等varin,out,count:integer;buffer:array[0,…,n-1]ofitem; /*初始化代碼用管程機(jī)制解決生產(chǎn)者—1、建立Producer-consumer(PC)管put(item)過生產(chǎn)者利用此過程將自己生產(chǎn)的產(chǎn)品放到緩池中,若發(fā)現(xiàn)緩沖池已滿(countget(item)過
n),則等待消費者利用此過程將緩沖池中的產(chǎn)品取走,發(fā)現(xiàn)緩沖池已空(count0),則等待 Procedureentryput(item)ifcount>=nin:=(in+1)modn;ifnotempty.queue
Procedureentryifcount=0out:=(out+1)modn;ifnotfull.queue2、生產(chǎn)者—消費者問題的解produceaniteminnextp;untilfalseconsumetheiteminnextc;untilfalse二、“哲學(xué)家進(jìn)餐”問問題描述有五個哲學(xué)家,他們的生活方式是交替地進(jìn)行餐畢,放下筷子又繼續(xù)思考。哲學(xué)家進(jìn)餐問題可看作是并發(fā)進(jìn)程并發(fā)執(zhí)行時理共享資源的一個有代表性的問題哲學(xué)家進(jìn)餐問題的解semaphorestick[5]={1,1,1,1,1};/*分別表示5支筷子*/{}第i個哲學(xué)家的活動算philosopher(int{{進(jìn)餐}
說明1、此算法可以保證不相鄰的兩位哲學(xué)家同時進(jìn)餐而各自拿起了左邊的筷}上述解法可能出現(xiàn) 等待,有若干種至多允許四個哲學(xué)家同時進(jìn)餐(解決方法解決的方法(一 signal(stick[(i+1)mod wait(stick[(i+1)mod 解決的方法(二 {if signal(stick[(i+1)mod wait(stick[(i+1)mod {wait(stick[(i+1)mod}解決的方法(三semaphorestick[5]={1,1,1,1,1};philosopher(inti){{Swait(stick[(i+1)modSsignal(stick[(i+1)mod}}三、“讀者—寫者”問問題描述程共享。其中,讀者(reader)進(jìn)程要求讀,寫(writer)進(jìn)程要求寫或修改三、“讀者—寫者”問RRRRRRRRRWWWWWWShared三、“讀者—寫者”問WWWWWWWRRRRRRRRShared三、“讀者—寫者”問RRRRRRRRRWWWWWShared“讀者—寫者”問題的解“讀者—設(shè)置一個共享變量和兩個信號量共享變量readcoun:記錄當(dāng)前正在讀數(shù)據(jù)集的讀進(jìn)程數(shù)目,初值為0。讀互斥信號量rmutex:表示讀進(jìn)程互斥地 寫互斥信號量wmutex:表示寫進(jìn)程與其它進(jìn)程(讀、寫)互斥地 數(shù)據(jù)集,初值為“讀者—寫者”問題的解“讀者—寫者semaphorermutex=1;semaphorewmutex=1;intreadcount=0;{}{{}
if(readcount= utex);/*第一位讀 寫if(readcount==0)V(wmutex);/*第末位讀者允許寫進(jìn)}{{utex); 其
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 植物保護(hù)技術(shù)員崗位面試問題及答案
- 遠(yuǎn)程醫(yī)療平臺運維師崗位面試問題及答案
- 環(huán)保油墨應(yīng)用研究-洞察及研究
- 松樹水庫水源管理辦法
- 財政政策傳導(dǎo)效果-洞察及研究
- 團(tuán)隊內(nèi)部培訓(xùn)管理辦法
- 小學(xué)品德教育的目標(biāo)與實現(xiàn)策略
- FDM在碳纖維增強(qiáng)尼龍6復(fù)合材料性能研究中的應(yīng)用
- 國企資金管理辦法講解
- 數(shù)字時代舞蹈教學(xué)變革的理念、場景及實施路徑探索
- 計算機(jī)基礎(chǔ)知識理論競賽題庫與答案(960題)
- 醫(yī)院反恐防暴培訓(xùn)內(nèi)容
- GB/T 44353.1-2024動物源醫(yī)療器械第1部分:風(fēng)險管理應(yīng)用
- 2024年廣州市黃埔軍校紀(jì)念中學(xué)小升初分班考試數(shù)學(xué)模擬試卷附答案解析
- 新人教版五年級數(shù)學(xué)下冊期末試卷
- DB32-T 4757-2024 連棟塑料薄膜溫室建造技術(shù)規(guī)范
- 2025屆甘肅省天水市秦州區(qū)天水一中高一下數(shù)學(xué)期末達(dá)標(biāo)檢測試題含解析
- 互聯(lián)網(wǎng)導(dǎo)論智慧樹知到期末考試答案章節(jié)答案2024年上海第二工業(yè)大學(xué)
- 重癥??谱o(hù)士進(jìn)修匯報課件
- 孕產(chǎn)婦兒童健康管理服務(wù)規(guī)范
- 機(jī)關(guān)大院保安服務(wù)
評論
0/150
提交評論