![2[1].4__經(jīng)典進程的同步問題_第1頁](http://file.renrendoc.com/FileRoot1/2019-7/20/ed9c171e-1cd9-49d9-b5d7-44cf2ecdf68d/ed9c171e-1cd9-49d9-b5d7-44cf2ecdf68d1.gif)
![2[1].4__經(jīng)典進程的同步問題_第2頁](http://file.renrendoc.com/FileRoot1/2019-7/20/ed9c171e-1cd9-49d9-b5d7-44cf2ecdf68d/ed9c171e-1cd9-49d9-b5d7-44cf2ecdf68d2.gif)
![2[1].4__經(jīng)典進程的同步問題_第3頁](http://file.renrendoc.com/FileRoot1/2019-7/20/ed9c171e-1cd9-49d9-b5d7-44cf2ecdf68d/ed9c171e-1cd9-49d9-b5d7-44cf2ecdf68d3.gif)
![2[1].4__經(jīng)典進程的同步問題_第4頁](http://file.renrendoc.com/FileRoot1/2019-7/20/ed9c171e-1cd9-49d9-b5d7-44cf2ecdf68d/ed9c171e-1cd9-49d9-b5d7-44cf2ecdf68d4.gif)
![2[1].4__經(jīng)典進程的同步問題_第5頁](http://file.renrendoc.com/FileRoot1/2019-7/20/ed9c171e-1cd9-49d9-b5d7-44cf2ecdf68d/ed9c171e-1cd9-49d9-b5d7-44cf2ecdf68d5.gif)
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2.4 經(jīng)典進程的同步問題,在多道程序環(huán)境下,進程同步問題十分重要,出現(xiàn)一系列經(jīng)典的進程同步問題,常被用于研究、設(shè)計與評價一個同步機制,同時為解決新的并發(fā)程序設(shè)計問題提供了重要的參考,其中代表性有: 生產(chǎn)者消費者問題 讀者寫者問題 哲學家進餐問題,作 業(yè),1、問題描述,描述了一組生產(chǎn)者向一組消費者提供產(chǎn)品,它們共享一個有界緩沖池,池中有n緩沖區(qū),生產(chǎn)者向其中投放產(chǎn)品,消費者從中取得產(chǎn)品消費。 如圖所示。,P1 P2 pm,C1 C2 Cn,生產(chǎn)者,消費者,產(chǎn)品,有界緩沖池,某個生產(chǎn)者進程生產(chǎn)產(chǎn)品并放入緩沖區(qū), 生產(chǎn)一個產(chǎn)品 申請一個可放產(chǎn)品的空緩沖區(qū) 申請臨界資源(有界緩沖池)的使用 放產(chǎn)品到指定緩沖區(qū) 釋放臨界資源(有界緩沖池)的使用 釋放一個裝有產(chǎn)品的緩沖區(qū) ,某個某個消費者進程消費從緩沖區(qū)取產(chǎn)品并消費, 申請一個裝有產(chǎn)品的緩沖區(qū) 申請臨界資源(有界緩沖池)的使用 從指定緩沖區(qū)取出產(chǎn)品 釋放臨界資源(有界緩沖池)的使用 釋放一個空緩沖區(qū) 消費此產(chǎn)品 ,所需信號量、物理意義及初值 兩個同步信號量: empty:表示空緩沖區(qū)的數(shù)目,其初值為有界緩沖區(qū)的大小n。 Full: 表示裝有產(chǎn)品的緩沖區(qū)數(shù)目(即產(chǎn)品數(shù)),初值為0. 互斥信號量: Mutex: 表示互斥使用該有界緩沖池這一臨界資源,初值為1。 semaphore full=0; /*表示滿緩沖區(qū)的數(shù)目*/ semaphore empty=n; /*表示空緩沖區(qū)的數(shù)目*/ semaphore mutex=1; /*表示對有界緩沖池進行互斥操作*/, 生產(chǎn)一個產(chǎn)品; wait(empty); wait(mutex); 將一個產(chǎn)品送入緩沖區(qū); signal(mutex); signal(full); ,Producer(i), wait(full); wait(mutex); 從緩沖區(qū)取走一個產(chǎn)品; signal(mutex); signal(empty); 消費一個產(chǎn)品; ,consumer(j),注意事項,1. 在進程的同步與互斥問題中, P,V操作必須成對出現(xiàn),有一個P操作就一定有一個V操作。當為互斥操作時,它們同處于同一進程;當為同步操作時,則一定不在同一進程中出現(xiàn)。 思考:在生產(chǎn)者-消費者問題中,如果缺少了V(full)或V(empty),對執(zhí)行結(jié)果將會有何影響?,“生產(chǎn)者-消費者”問題中應(yīng)注意,2.任意一對相鄰的P操作順序非常重要。在并發(fā)環(huán)境中,當進程既要同步又要互斥時,必須把互斥信號量的P操作放在同步信號量的P操作之后, 否則會引起進程死鎖.而兩個V操作的順序則無關(guān)緊要。 思考:在生產(chǎn)者-消費者問題中,如果將兩個P操作即P(empty)和P(mutex) 互換位置,或者將兩個V操作即V(mutex)和V(full)互換位置,結(jié)果會如何?,“生產(chǎn)者-消費者”問題中應(yīng)注意,3.生產(chǎn)者-消費者問題是操作系統(tǒng)和現(xiàn)實生活中許多相互合作進程的一個抽象模型。 思考:p69,28題,返回,2、“讀者寫者”問題,問題描述: 一個數(shù)據(jù)對象(數(shù)據(jù)文件或記錄)可被多個進程共享。其中,reader進程要求讀,writer 進程要求寫或修改。允許多個reader進程同時讀共享數(shù)據(jù),但絕不允許一個writer進程與其它的reader進程或writer進程同時訪問,即writer進程必須與其它進程互斥訪問共享對象。,某個讀進程讀數(shù)據(jù), 申請修改計數(shù)變量Readcount 若為首位(Readcount=0)讀進程,申請對數(shù)據(jù)對象的讀權(quán)(與寫進程互斥) 修改計數(shù)變量Readcount(加1) 釋放計數(shù)變量Readcount的使用 讀數(shù)據(jù)對象 申請修改讀進程計數(shù)變量Readcount(臨界資源) 修改計數(shù)變量Readcount(減1) 若為末位(Readcount=0)讀進程,釋放對數(shù)據(jù)對象的讀權(quán)(與寫進程互斥) 釋放臨界資源(計數(shù)變量Readcount)的使用 , 申請對數(shù)據(jù)對象的寫權(quán)(與讀寫進程互斥) 寫數(shù)據(jù) 釋放對數(shù)據(jù)對象的寫權(quán)(與讀寫進程互斥) ,某個寫進程寫數(shù)據(jù),計數(shù)變量Readcount:記錄當前正在讀數(shù)據(jù)的讀進程數(shù)目, 讀互斥信號量Rmutex :表示讀進程互斥地訪問計數(shù)變量 readcount,初值為1. 寫互斥信號量wmutex:表示寫進程與其它進程(讀、寫) 互斥地訪問數(shù)據(jù),初值為1. semaphore Rmutex=1; semaphore wmutex=1; int readcount=0;,設(shè)置一個共享變量和兩個信號量,某個讀進程讀數(shù)據(jù), 申請修改計數(shù)變量Readcount 若為首位(Readcount=0)讀進程,申請對數(shù)據(jù)對象的讀權(quán)(與寫進程互斥) 修改計數(shù)變量Readcount(加1) 釋放計數(shù)變量Readcount的使用 讀數(shù)據(jù)對象 申請修改讀進程計數(shù)變量Readcount(臨界資源) 修改計數(shù)變量Readcount(減1) 若為末位(Readcount=0)讀進程,釋放對數(shù)據(jù)對象的讀權(quán)(與寫進程互斥) 釋放臨界資源(計數(shù)變量Readcount)的使用 ,Wait(Rmutex),Signal(Rmutex),Wait(Wmutex),Signal(Wmutex),Wait(Rmutex),Signal(Rmutex), 申請對數(shù)據(jù)對象的寫權(quán)(與讀寫進程互斥) 寫數(shù)據(jù) 釋放對數(shù)據(jù)對象的寫權(quán)(與讀寫進程互斥) ,某個寫進程寫數(shù)據(jù),Wait(Wmutex),Signal(Wmutex), wait(rmutex); if(readcount= =0) wait(wmutex);/*第一位讀者阻止寫者*/ readcount+; V(rmutex); 讀數(shù)據(jù); wait(rmutex); re
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 撫順初中一模數(shù)學試卷
- 福州市初三沖刺數(shù)學試卷
- 阜寧二模數(shù)學試卷
- 肝炎護理課件
- 東城初中一模數(shù)學試卷
- 甘南藏族中考數(shù)學試卷
- 福建省廈門中考數(shù)學試卷
- 鎮(zhèn)街安全培訓(xùn)課件
- 2025年02月北京首都醫(yī)科大學附屬北京同仁醫(yī)院招聘5人筆試歷年專業(yè)考點(難、易錯點)附帶答案詳解
- 2025至2030軌道式氧流量計行業(yè)市場深度研究與戰(zhàn)略咨詢分析報告
- 某鎮(zhèn)“十五五”發(fā)展規(guī)劃編制思路
- 2025安全生產(chǎn)月主題宣講課件十:主要負責人安全公開課
- 醫(yī)療器械臨床評價課件
- 滬科版九年級物理全一冊教案(完整版)教學設(shè)計含教學反思
- DB32∕T 2880-2016 光纖傳感式橋隧結(jié)構(gòu)健康監(jiān)測系統(tǒng)設(shè)計、施工及維護規(guī)范
- 開發(fā)報建流程及細則
- 潔凈室塵埃粒子檢測規(guī)范
- 測量成果驗收單
- 系統(tǒng)開發(fā)需求確認單
- 高中成績證明模板(共2頁)
- 冰毯機的使用與護理
評論
0/150
提交評論