版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、進(jìn)程管理進(jìn)程同步 定義:我們把在異步環(huán)境下的一組并發(fā)進(jìn)定義:我們把在異步環(huán)境下的一組并發(fā)進(jìn)程因直接制約,相互發(fā)送音訊,并進(jìn)展相互協(xié)程因直接制約,相互發(fā)送音訊,并進(jìn)展相互協(xié)作、相互等待,使得各進(jìn)程按一定的速度執(zhí)行作、相互等待,使得各進(jìn)程按一定的速度執(zhí)行的過程稱為進(jìn)程間的同步。的過程稱為進(jìn)程間的同步。 具有同步關(guān)系的一組并發(fā)進(jìn)程稱為協(xié)作進(jìn)具有同步關(guān)系的一組并發(fā)進(jìn)程稱為協(xié)作進(jìn)程;協(xié)作進(jìn)程間相互發(fā)送的信號稱為音訊或事程;協(xié)作進(jìn)程間相互發(fā)送的信號稱為音訊或事件。件。 同步的概念進(jìn)程同步進(jìn)程同步 例:計(jì)算進(jìn)程和打印進(jìn)程公用同一緩沖區(qū)例:計(jì)算進(jìn)程和打印進(jìn)程公用同一緩沖區(qū)BufBuf。 PC( PC(計(jì)算計(jì)算
2、) PP) PP打印打印 A:local Buf B:local Pri A:local Buf B:local PriRepeat RepeatRepeat Repeat Buf Buf Pri Buf Buf Buf Pri BufUntil Buf=Until Buf=空計(jì)算空計(jì)算Until Pri Until Pri 空空得到計(jì)算結(jié)果得到計(jì)算結(jié)果打印打印BufBuf中數(shù)據(jù)中數(shù)據(jù)Buf Buf 計(jì)算結(jié)果計(jì)算結(jié)果 去除去除BufBuf中數(shù)據(jù)中數(shù)據(jù)Goto A Goto A Goto B Goto B進(jìn)程同步進(jìn)程同步 問題:浪費(fèi)CPU時間。 采用音訊的方法實(shí)現(xiàn)直接制約(同步): 設(shè)過程Wai
3、t(過程名)表示進(jìn)程等待協(xié)作進(jìn)程發(fā)來音訊。 過程signal(音訊名)表示向協(xié)作進(jìn)程發(fā)送音訊。 設(shè)音訊名Bufempty表示Buf空,設(shè)音訊名Buffull表示Buf滿裝滿數(shù)據(jù)。 初始化:Bufempty=true,Buffull=false 進(jìn)程同步進(jìn)程同步Pc PpA:wait(Bufempty) B:wait(Buffull) 計(jì)算 打印Buf中的數(shù)據(jù) Buf 計(jì)算結(jié)果 去除Buf中的數(shù)據(jù) Bufempty false Buffull false Signal(Buffull) signal(Bufempty) Goto A Goto B進(jìn)程同步進(jìn)程同步 私用有信號量私用有信號量 把各進(jìn)
4、程間發(fā)送的音訊作為信號量對待,把各進(jìn)程間發(fā)送的音訊作為信號量對待,這種信號量只與制約進(jìn)程和被制約進(jìn)程有關(guān),這種信號量只與制約進(jìn)程和被制約進(jìn)程有關(guān),但不與整組并發(fā)進(jìn)程有關(guān),這種信號量稱為但不與整組并發(fā)進(jìn)程有關(guān),這種信號量稱為私用信號量私用信號量Private SemaphorePrivate Semaphore。 與私用信號量相對應(yīng),我們稱進(jìn)程互斥時與私用信號量相對應(yīng),我們稱進(jìn)程互斥時運(yùn)用的信號量為公用信號量。運(yùn)用的信號量為公用信號量。進(jìn)程同步進(jìn)程同步 用用P P、V V原語操作實(shí)現(xiàn)進(jìn)程的直接制約原語操作實(shí)現(xiàn)進(jìn)程的直接制約( (同步同步) ) 例子:設(shè)進(jìn)程和經(jīng)過緩沖區(qū)隊(duì)列傳送數(shù)據(jù)如圖例子:設(shè)進(jìn)程
5、和經(jīng)過緩沖區(qū)隊(duì)列傳送數(shù)據(jù)如圖3.133.13, PA, PA為發(fā)送進(jìn)程,為發(fā)送進(jìn)程,PBPB為接納進(jìn)程;為接納進(jìn)程;PAPA發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)時調(diào)用發(fā)送過程時調(diào)用發(fā)送過程deposit(data)deposit(data),PBPB接納數(shù)據(jù)時調(diào)用過接納數(shù)據(jù)時調(diào)用過程程remove(data)remove(data)。且數(shù)據(jù)的發(fā)送與接納過程滿足如下。且數(shù)據(jù)的發(fā)送與接納過程滿足如下條件:條件: 1 1在在PAPA至少送一塊數(shù)據(jù)入一個緩沖區(qū)之前,至少送一塊數(shù)據(jù)入一個緩沖區(qū)之前,PBPB不能不能夠從緩沖區(qū)中取出數(shù)據(jù)假定數(shù)據(jù)塊長等于緩沖區(qū)長夠從緩沖區(qū)中取出數(shù)據(jù)假定數(shù)據(jù)塊長等于緩沖區(qū)長度。度。進(jìn)程同步進(jìn)程同
6、步 2PA往緩沖隊(duì)列發(fā)送數(shù)據(jù)時,至少有一個緩沖區(qū)是空的; 3由PA發(fā)送的數(shù)據(jù)塊在緩沖隊(duì)列中按先進(jìn)先出FIFO方式陳列。 PA Buff1 buff2 buff3 . Buffn PB進(jìn)程同步進(jìn)程同步 我們按如下三步描畫過程deposit(data)和 remove (data) 1設(shè)Buf-empty為進(jìn)程PA的私用信號量,表示緩沖區(qū)能否有空;Buf-full為進(jìn)程PB的私用信號量,表示緩沖區(qū)能否有數(shù)可??; 2Buf-empty的初始值為n (n為緩沖隊(duì)列的緩沖區(qū)個數(shù)),Buf-full的初始值為0;進(jìn)程同步進(jìn)程同步 3) 算法描畫如下: PA: deposit(data) Begin loc
7、al x; P(Buf-empty); 按FIFO方式選擇一個空緩沖區(qū)Buf(x); Buf(x) data; Buf(x)置滿標(biāo)志; V(Buf-full); End.進(jìn)程同步進(jìn)程同步 PB PB: remove(data) remove(data) Begin local x; Begin local x; P(Buf-full); P(Buf-full); 按按FIFOFIFO方式選擇一個裝方式選擇一個裝滿數(shù)據(jù)的緩沖區(qū)滿數(shù)據(jù)的緩沖區(qū)Buf(x);Buf(x); data Buf(x); data Buf(x); Buf(x) Buf(x)置空標(biāo)志;置空標(biāo)志; V(Buf-empty);
8、V(Buf-empty); End. End.進(jìn)程同步進(jìn)程同步 這里,部分變量x用來指明緩沖區(qū)的區(qū)號;給Buf(x)置標(biāo)志位是為了便于區(qū)別和搜索空緩沖區(qū)與非空緩沖區(qū)。 比較互斥與同步的兩個例子:互斥 同步設(shè)置信號量S公用 設(shè)置信號量S1,S2 私用信號量初值S=1 信號量初值S1=n., S2=0。 進(jìn)程同步進(jìn)程同步 算法描畫: P1 P1 Begin begin P(S) P(S1) 臨界資源 送數(shù) VS VS2 End End進(jìn)程同步進(jìn)程同步 P2 P2 P2 P2 Begin begin Begin begin P(S) P(S2) P(S) P(S2) 臨界資源臨界資源 取數(shù)取數(shù) V
9、VS S V VS1S1 End End End End進(jìn)程同步進(jìn)程同步 示圖: P1、P2 P1 P2 PS P(S1) P(S2) 臨界區(qū) 送數(shù) 取數(shù) VS VS2 VS1 進(jìn)程同步進(jìn)程同步 消 費(fèi) 者 消 費(fèi) 者 問 題 P r o d u c e r Consumer Problems 我們把系統(tǒng)中運(yùn)用某一類資源的進(jìn)程稱為該資源的消費(fèi)者,把釋放同類資源的進(jìn)程稱為該資源的消費(fèi)者。 多個消費(fèi)者 多個消費(fèi)者P1 多個緩沖區(qū) C1P2 1 2 . n C2 Pn Cn進(jìn)程同步進(jìn)程同步設(shè)消費(fèi)者進(jìn)程和消費(fèi)者進(jìn)程是等效的,設(shè)消費(fèi)者進(jìn)程和消費(fèi)者進(jìn)程是等效的,其 中 , 各 消 費(fèi) 者 進(jìn) 程 運(yùn) 用
10、的 過 程其 中 , 各 消 費(fèi) 者 進(jìn) 程 運(yùn) 用 的 過 程deposit(data)deposit(data)和各消費(fèi)者運(yùn)用的過程和各消費(fèi)者運(yùn)用的過程remove( data)remove( data)可描畫如下:可描畫如下:首先,我們可以看到消費(fèi)者首先,我們可以看到消費(fèi)者消費(fèi)者問消費(fèi)者問題是一個同步問題,即消費(fèi)者和消費(fèi)者之題是一個同步問題,即消費(fèi)者和消費(fèi)者之間滿足如下條件:間滿足如下條件:進(jìn)程同步進(jìn)程同步1消費(fèi)者想接納數(shù)據(jù)時,有界緩沖區(qū)中至少有一個單元是滿的。2消費(fèi)者想發(fā)送數(shù)據(jù)時,有界緩沖區(qū)中至少有一個單元是空的。另外,由于有界緩沖區(qū)是臨界資源,因此,各消費(fèi)者進(jìn)程和各消費(fèi)者進(jìn)程之間必需互斥執(zhí)行,即在一個時辰,只需一個進(jìn)程運(yùn)用緩沖區(qū)。進(jìn)程同步進(jìn)程同步下面是多個消費(fèi)者、多個消費(fèi)者、多個緩沖區(qū)的問題:設(shè)置信號量: mutex:公用信號量,表示消費(fèi)者進(jìn)程與消費(fèi)者進(jìn)程的互斥信號量; avail:消費(fèi)者進(jìn)程的私用信號量,其值表示有界緩沖區(qū)中的空單元數(shù)目緩沖區(qū)空的個數(shù); 進(jìn)程同步進(jìn)程同步 full:消費(fèi)者進(jìn)程的私用信號量,其值表示有界緩沖區(qū)中的非空單元數(shù)目緩沖區(qū)滿的個數(shù)。 給信號量賦初值
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度特色小吃街特許經(jīng)營合同2篇
- 2025年嫻熟酒店保險合同
- 2025年健康保險混合贈與合同
- 2025年度企業(yè)設(shè)備融資租賃抵押合同模板4篇
- 2025年作品宣傳推廣合同樣本
- 2025年度店面出租合同范本修訂與更新2篇
- 2025年內(nèi)蒙古民航機(jī)場包頭分公司招聘筆試參考題庫含答案解析
- 2025年度個人無息借款合同法律效力分析3篇
- 2024年度青海省公共營養(yǎng)師之二級營養(yǎng)師每日一練試卷A卷含答案
- 2025年華師大版九年級歷史下冊月考試卷含答案
- 2024公路瀝青路面結(jié)構(gòu)內(nèi)部狀況三維探地雷達(dá)快速檢測規(guī)程
- 2024年高考真題-地理(河北卷) 含答案
- 中國高血壓防治指南(2024年修訂版)解讀課件
- 2024年浙江省中考科學(xué)試卷
- 2024風(fēng)力發(fā)電葉片維保作業(yè)技術(shù)規(guī)范
- 《思想道德與法治》課程教學(xué)大綱
- 2024光儲充一體化系統(tǒng)解決方案
- 2024年全國高考新課標(biāo)卷物理真題(含答案)
- 處理后事授權(quán)委托書
- 食材配送服務(wù)方案投標(biāo)方案(技術(shù)方案)
- 足療店?duì)I銷策劃方案
評論
0/150
提交評論