




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、會計學(xué)1 操作系統(tǒng)操作系統(tǒng)PV習(xí)題課習(xí)題課PPT課件課件 進(jìn) 程 概 念(一) 問題:如果系統(tǒng)中有問題:如果系統(tǒng)中有N個進(jìn)程,個進(jìn)程, 4運行進(jìn)程最多幾個,最少幾個?運行進(jìn)程最多幾個,最少幾個? 4就緒進(jìn)程最多幾個,最少幾個?就緒進(jìn)程最多幾個,最少幾個? 4等待進(jìn)程最多幾個,最少幾個?等待進(jìn)程最多幾個,最少幾個? 第1頁/共24頁 解答解答:運行進(jìn)程最多:運行進(jìn)程最多1 1個,最少個,最少0 0個;個; 就緒進(jìn)程最多就緒進(jìn)程最多N-1-1個,最少個,最少0 0個;個; 等待進(jìn)程最多等待進(jìn)程最多N個,最少個,最少0 0個;個; 第2頁/共24頁 問題一問題一:用用P.VP.V操作解決下圖之同步問
2、題操作解決下圖之同步問題 getcopyput fstg 第3頁/共24頁 一個數(shù)據(jù)上的操作順序:一個數(shù)據(jù)上的操作順序:get - copy - put c p c g p c g pg Get不能向不能向“滿滿”的的S中放;中放; Copy不能從不能從“空空”的的S中?。徊荒芟蛑腥?;不能向“滿滿”的的T中中 放;放; Put不能不能“空空”的的T中取中取 第4頁/共24頁 (同步)信號量:(同步)信號量:實際上也起到互斥作用實際上也起到互斥作用 S_Empty, T_Empty, 初值為初值為1 S_Full, T_Full; 初值為初值為0 Get: Begin Repeat P(S_Em
3、pty) T_get_S(); V(S_Full); Until false; End Copy: Begin Repeat P(S_Full); P(T_Empty); S_copy_T(); V(T_Full); V(S_Empty); Until false; End Put: Begin Repeat P(T_Full); T_put_G(); V(T_Empty); Until false; End 第5頁/共24頁 進(jìn)程同步和互斥(二) 問題:用問題:用P.V操作解決下面問題操作解決下面問題 司機(jī)進(jìn)程:司機(jī)進(jìn)程: REPEAT 啟動車輛啟動車輛 正常駕駛正常駕駛 到站停車到站停車
4、UNTIL 售票員進(jìn)程:售票員進(jìn)程: REPEAT 關(guān)門關(guān)門 售票售票 開門開門 UNTIL 第6頁/共24頁 信號量:信號量: S_Door, 初值為初值為0 S_Stop; 初值為初值為0 司機(jī)進(jìn)程司機(jī)進(jìn)程: Begin Repeat P(S_Door); 啟動;啟動; 駕駛;駕駛; 停車;停車; V(S_Stop); Until false; End 乘務(wù)員進(jìn)程乘務(wù)員進(jìn)程: Begin Repeat 關(guān)門;關(guān)門; V(S_Door); 售票;售票; P(S_Stop); 開門;開門; Until false; End 同步要求:先關(guān)門,后開車;同步要求:先關(guān)門,后開車; 先停車,后開門先
5、停車,后開門 第7頁/共24頁 第二類讀者寫者問題(寫者優(yōu)先)第二類讀者寫者問題(寫者優(yōu)先) 1)共享讀)共享讀 2)互斥寫、讀寫互斥)互斥寫、讀寫互斥 3)寫者優(yōu)先于讀者(一旦有寫者,則后續(xù)讀者必)寫者優(yōu)先于讀者(一旦有寫者,則后續(xù)讀者必 須等待,喚醒時優(yōu)先考慮寫者)須等待,喚醒時優(yōu)先考慮寫者) 進(jìn)程同步和互斥(三) 第8頁/共24頁 Var mutex: semaphore; 互斥信號量,初值為互斥信號量,初值為1 R : semaphore; 對應(yīng)讀者等待隊列,初值為對應(yīng)讀者等待隊列,初值為0 W: semaphore; 對應(yīng)寫者等待隊列,初值為對應(yīng)寫者等待隊列,初值為0 一般變量:一般
6、變量: Writing: Boolean; 初值初值false, 有寫者正在寫有寫者正在寫 rc: integer; 初值初值0, 共享讀的讀者數(shù)共享讀的讀者數(shù) rq: integer; 初值初值0,等待隊列中讀者數(shù)等待隊列中讀者數(shù) wq: integer; 初值初值0,等待隊列中寫者數(shù)等待隊列中寫者數(shù) 第9頁/共24頁 讀者進(jìn)程 Begin Repeat P(mutex); If (Writing OR wq0) Then Begin rq:=rq+1; V(mutex); P(R); P(mutex); resume End; rc:=rc+1; V(mutex); Read(); 第10
7、頁/共24頁 P(mutex); rc:=rc-1; If (rc=0 AND wq0) Then Begin wq:=wq-1; Writing:=true; V(mutex); V(W); End; Else V(mutex); Until false End 第11頁/共24頁 寫者進(jìn)程 Begin Repeat P(mutex); If (Writing OR rc0) Then Begin wq:=wq+1; V(mutex); P(W); End; Else Begin Writing:=true; V(mutex); Write(); 第12頁/共24頁 P(mutex); If
8、 (wq0) Then Begin wq:=wq-1; V(mutex); V(W); End Else 第13頁/共24頁 If (rq0) Then Begin Writing:=false; While (rq0) Begin rq:=rq-1; V(R); End End Else Begin Writing:=false; V(mutex); End End Until false 第14頁/共24頁 理發(fā)師問題理發(fā)師問題: 理發(fā)店里有一位理發(fā)師理發(fā)店里有一位理發(fā)師,一把理發(fā)椅和一把理發(fā)椅和N把供把供 等候理發(fā)的顧客坐的椅子等候理發(fā)的顧客坐的椅子.如果沒有顧客如果沒有顧客,則理發(fā)師則
9、理發(fā)師 便在理發(fā)椅上睡覺便在理發(fā)椅上睡覺.當(dāng)一個顧客到來時當(dāng)一個顧客到來時,他必須先喚他必須先喚 醒理發(fā)師醒理發(fā)師.如果顧客到來時理發(fā)師正在理發(fā),則如如果顧客到來時理發(fā)師正在理發(fā),則如 果有空椅子,可坐下來等;否則離開。果有空椅子,可坐下來等;否則離開。 進(jìn)程同步和互斥(四) 第15頁/共24頁 Var Sn: semaphore; 位子數(shù)目,初值為位子數(shù)目,初值為n S: semaphore; 理發(fā)師睡覺,初值為理發(fā)師睡覺,初值為0 mutex: semaphore; 初值為初值為1 顧客進(jìn)程顧客進(jìn)程 i: P(Sn);門外觀望門外觀望 P(mutex); 進(jìn)門;進(jìn)門; V(mutex);
10、V(S); 等候;等候; 理發(fā);理發(fā); V(Sn) P(mutex); 出門;出門; V(mutex); 第16頁/共24頁 理發(fā)師進(jìn)程理發(fā)師進(jìn)程 : Repeat P(S); P(mutex); 叫人理發(fā);叫人理發(fā); V(mutex); 理發(fā);理發(fā); Until false; 第17頁/共24頁 問題:問題: 推廣讀寫者問題中的消息緩沖處理。消息推廣讀寫者問題中的消息緩沖處理。消息 緩沖區(qū)為緩沖區(qū)為k個,有個,有m個發(fā)送進(jìn)程,個發(fā)送進(jìn)程,n個接收進(jìn)程,個接收進(jìn)程, 每個接收進(jìn)程對發(fā)送來的消息都必須取一次每個接收進(jìn)程對發(fā)送來的消息都必須取一次 進(jìn)程同步和互斥(五) 第18頁/共24頁 解題思路
11、:解題思路: 發(fā)送者發(fā)送消息后喚醒所有的接收者;發(fā)送者發(fā)送消息后喚醒所有的接收者; 所有的接收者都接收后空出緩沖區(qū);所有的接收者都接收后空出緩沖區(qū); 接收者接收時要修改接收次數(shù);接收者接收時要修改接收次數(shù); 接收計數(shù)和緩沖區(qū)的指針為臨界資源,訪問接收計數(shù)和緩沖區(qū)的指針為臨界資源,訪問 時要互斥時要互斥 。 第19頁/共24頁 Type BufferType = Record msg:MessageType; count:integer; mutex:semaphore; 初值為初值為1 empty: semaphore; 初值為初值為1 full: array 1.n of semaphore
12、; 初值全為初值全為0 End Var mutex: semaphore; 初值為初值為1 s: integer; 初值為初值為0 buff: array 0.k-1 of BufferType; k是緩沖區(qū)大??;是緩沖區(qū)大小; n是接收進(jìn)程個數(shù)是接收進(jìn)程個數(shù) m是發(fā)送進(jìn)程個數(shù),通過是發(fā)送進(jìn)程個數(shù),通過 s 進(jìn)行進(jìn)行“寫互斥寫互斥” 第20頁/共24頁 Procedure Sender_i(i:integer); i 為發(fā)送進(jìn)程的標(biāo)號為發(fā)送進(jìn)程的標(biāo)號 Vars0, j: integer; Begin Repeat P(mutex); s0:=s; s:=(s+1) mod k; V(mutex); P(buffs0.empty); 在在buffs0.msg中寫信息;中寫信息; P(buffs0.mutex); buffs0.count:=n; V(buffs0.mutex); For (j:=1 to n do) V(buffs0.fullj); Until false; End 第21頁/共24頁 Procedure Recvr(i:integer); i 為接收進(jìn)程的標(biāo)號為接收進(jìn)程的標(biāo)號 Varj: integer; Begin j:=
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《2025年校園教師勞動合同》
- 掛靠合作合同協(xié)議書范本
- 廢木材買賣合同協(xié)議書
- 工作室合作合同協(xié)議書
- 天貓店鋪轉(zhuǎn)讓合同協(xié)議書
- 2025年澳門勞務(wù)派遣合同樣本
- 2025 汽車銷售合同(分期付款)
- 2025終止合同協(xié)議書樣本【范本】
- 2025一次性餐具定制合同
- 2025「新合同法解析」合同訂立與履行中的關(guān)鍵要點
- T/CCMA 0137-2022防撞緩沖車
- 陜西省煙草專賣局(公司)筆試試題2024
- 2025年05月廣西百色干部學(xué)院公開招聘編外工作人員8人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 全國統(tǒng)一考試考務(wù)人員網(wǎng)上培訓(xùn)考試試題及答案
- MOOC 隔網(wǎng)的智慧-乒羽兩項-西南交通大學(xué) 中國大學(xué)慕課答案
- JTT327-2016 公路橋梁伸縮裝置通用技術(shù)條件
- 端午放假通知海報模板
- 土石方場地平整施工組織方案
- 外周血單個核細(xì)胞分離方法探討
- LED亮度自動調(diào)節(jié)系統(tǒng)設(shè)計
評論
0/150
提交評論