版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
復(fù)習(xí)進(jìn)程間的制約關(guān)系有哪兩種?什么是臨界區(qū)什么是互斥?信號(hào)量的含義?P原語(yǔ)用于何時(shí)?V原語(yǔ)用于何時(shí)?第三章進(jìn)程管理*進(jìn)程同步進(jìn)程間的制約關(guān)系1)間接制約:進(jìn)行競(jìng)爭(zhēng)--獨(dú)占分配到的部分或全部共享資源,“互斥”。進(jìn)程間要通過(guò)某種中介發(fā)生聯(lián)系,是無(wú)意識(shí)安排的,可發(fā)生在相關(guān)進(jìn)程之間,也可發(fā)生在無(wú)關(guān)進(jìn)程之間2)直接制約:進(jìn)行協(xié)作--等待來(lái)自其他進(jìn)程的信息,“同步”。進(jìn)程間的相互聯(lián)系是有意識(shí)的安排的,直接作用只發(fā)生在相關(guān)進(jìn)程間進(jìn)程同步指系統(tǒng)中一些進(jìn)程需要相互合作,共同完成一項(xiàng)任務(wù)。具體說(shuō),一個(gè)進(jìn)程運(yùn)行到某一點(diǎn)時(shí)要求另一伙伴進(jìn)程為它提供消息,在未獲得消息之前,該進(jìn)程處于等待狀態(tài),獲得消息后被喚醒進(jìn)入就緒態(tài)進(jìn)程同步例1:計(jì)算進(jìn)程Pc和打印進(jìn)程Pp合作完成計(jì)算和打印任務(wù)。兩個(gè)進(jìn)程共同使用同一個(gè)緩沖區(qū)Buf,Pc反復(fù)把數(shù)據(jù)放入Buf,Pp反復(fù)將Buf中的數(shù)據(jù)打印輸出。緩沖區(qū)BufPcPp計(jì)算打印放入數(shù)據(jù)條件:緩沖區(qū)空取出數(shù)據(jù)條件:緩沖區(qū)滿進(jìn)程同步不采取任何制約措施:Pc:
A:localcountRepeatcount
BufUntilcount=空計(jì)算
Buf
計(jì)算結(jié)果
GotoAPp:
B:localprintRepeatprint
BufUntilprint≠空打印
Buf
清除Buf
GotoB進(jìn)程同步缺點(diǎn):由于反復(fù)測(cè)試語(yǔ)句的存在,造成CPU時(shí)間的極大浪費(fèi),這是操作系統(tǒng)設(shè)計(jì)要求不允許的解決:直接制約的進(jìn)程互相給對(duì)方進(jìn)程發(fā)送信號(hào),告之執(zhí)行條件已具備進(jìn)程同步例1:進(jìn)程Pc和Pp合作完成計(jì)算和打印任務(wù)計(jì)算進(jìn)程Pc將計(jì)算結(jié)果放入Buf后,給打印進(jìn)程Pp發(fā)送“非空”信號(hào)打印進(jìn)程Pp將Buf中數(shù)據(jù)清除后,給計(jì)算進(jìn)程Pc發(fā)送“空”信號(hào)進(jìn)程同步緩沖區(qū)bufPcPp計(jì)算打印非空空放了一個(gè)蘋(píng)果盤(pán)子滿了蘋(píng)果吃了盤(pán)子空了進(jìn)程同步同步:在異步環(huán)境(執(zhí)行起始時(shí)間隨機(jī),速度獨(dú)立)下的一組并發(fā)進(jìn)程,因直接制約互相發(fā)送消息而進(jìn)行合作、互相等待,使得各進(jìn)程按一定的速度執(zhí)行的過(guò)程合作進(jìn)程:具有同步關(guān)系的一組并發(fā)進(jìn)程消息(事件):合作進(jìn)程間互相發(fā)送的信號(hào)用P、V原語(yǔ)實(shí)現(xiàn)進(jìn)程同步可把各進(jìn)程之前發(fā)送的消息作為信號(hào)量看待私用信號(hào)量:只與制約進(jìn)程及被制約進(jìn)程有關(guān),用于同步公用信號(hào)量:與整組并發(fā)進(jìn)程有關(guān),用于互斥用P、V原語(yǔ)實(shí)現(xiàn)進(jìn)程同步例1:進(jìn)程Pc和Pp合作完成計(jì)算和打印任務(wù)解:1)設(shè)私用信號(hào)量Bufempty表示buf
空,Buffull表示buf滿
2)設(shè)初始值Bufempty=1,Buffull=0,表示當(dāng)前緩沖區(qū)空緩沖區(qū)bufPcPp計(jì)算打印放入數(shù)據(jù)條件:緩沖區(qū)空取出數(shù)據(jù)條件:緩沖區(qū)滿用P、V原語(yǔ)實(shí)現(xiàn)進(jìn)程同步3)描述:Pc:A:P(Bufempty);
計(jì)算
buf
計(jì)算結(jié)果
V(Buffull);
GotoA;Pp:B:P(Buffull);
打印
Buf
清除Buf
V(Bufempty);
GotoB;用P、V原語(yǔ)實(shí)現(xiàn)進(jìn)程同步例2:設(shè)公共汽車上,司機(jī)和售票員的活動(dòng)如下。在汽車不斷到站停車、行駛過(guò)程中,這兩個(gè)活動(dòng)有什么同步關(guān)系?用P、V原語(yǔ)實(shí)現(xiàn)他們的同步。司機(jī)P1
P2售票員
啟動(dòng)關(guān)門(mén)
正常運(yùn)行售票
到站停開(kāi)門(mén)用P、V原語(yǔ)實(shí)現(xiàn)進(jìn)程同步解:1)設(shè)私用信號(hào)量close表示售票員是否關(guān)門(mén),stop表示車輛是否停止到站
2)設(shè)初始值close=1,stop=0,表示車在運(yùn)行
3)描述:P1:A:P(close)
啟動(dòng)行車停車
V(stop)
GotoAP2:B:P(stop)
開(kāi)門(mén)
關(guān)門(mén)
V(close)售票
GotoB用P、V原語(yǔ)實(shí)現(xiàn)進(jìn)程同步例3:兩個(gè)同步進(jìn)程共同使用多個(gè)緩沖區(qū)的情況PaPbBuf1Buf2Bufn用P、V原語(yǔ)實(shí)現(xiàn)進(jìn)程同步解:1)設(shè)私有信號(hào)量Bufempty表示空緩沖區(qū)的個(gè)數(shù),Buffull表示滿緩沖區(qū)的個(gè)數(shù)
2)設(shè)初始值Bufempty=n,Buffull=0用P、V原語(yǔ)實(shí)現(xiàn)進(jìn)程同步
3)描述:Pa:deposit(data):Pb:remove(data)A:localxB:localx
P(Bufempty);P(Buffull);
選擇一個(gè)空Buf(x);選擇一個(gè)滿Buf(x)
Buf(x)datadataBuf(x)
Buf(x)置滿標(biāo)記Buf(x)置空標(biāo)記
V(Buffull);V(Bufempty);
GotoA;GotoB;用P、V原語(yǔ)實(shí)現(xiàn)進(jìn)程同步注意:1)Bufempty初始值為n,表示初始時(shí)n個(gè)緩沖區(qū)均為空2)x是緩沖區(qū)號(hào)3)Pa中的Buf(x)置滿標(biāo)記是為了按FIFO方式選擇緩沖區(qū)時(shí)可知Buf(x)是滿的,Pb中的Buf(x)置空標(biāo)記的作用類似。都是便于搜索和區(qū)別空緩沖區(qū)和非空緩沖區(qū)用P、V原語(yǔ)實(shí)現(xiàn)進(jìn)程同步例4:兩個(gè)進(jìn)程PA和PB通過(guò)兩個(gè)FIFO緩沖區(qū)隊(duì)列連接(設(shè)緩沖區(qū)隊(duì)列的緩沖區(qū)個(gè)數(shù)都為n個(gè)),每個(gè)緩沖區(qū)長(zhǎng)度等于傳送消息長(zhǎng)度。進(jìn)程PA和PB之間的通信滿足如下條件:(1)至少有一個(gè)空緩沖區(qū)存在時(shí),相應(yīng)的發(fā)送進(jìn)程才能發(fā)送一個(gè)消息。(2)當(dāng)緩沖隊(duì)列中至少存在一個(gè)非空緩沖區(qū)時(shí),相應(yīng)的接收進(jìn)程才能接收一個(gè)消息。用P、V原語(yǔ)實(shí)現(xiàn)進(jìn)程同步試描述進(jìn)程PA調(diào)用的發(fā)送過(guò)程send(1,m)和接收過(guò)程receive(2,m)。這里1和2分別代表緩沖隊(duì)列1和緩沖隊(duì)列2,m代表消息。PAPB緩沖區(qū)隊(duì)列1緩沖區(qū)隊(duì)列2用P、V原語(yǔ)實(shí)現(xiàn)進(jìn)程同步解:1)設(shè)私有信號(hào)量bufempty[1],buffull[1],bufempty[2],buffull[2]用于進(jìn)程PA和PB之間進(jìn)行同步2)設(shè)初始值bufempty[1]=n,buffull[1]=0,bufempty[2]=n,buffull[2]=0用P、V原語(yǔ)實(shí)現(xiàn)進(jìn)程同步3)描述receive(2,m)BeginLocalxP(buffull[2])
按FIFO方式選擇一個(gè)滿緩沖區(qū)buf(x)
消息m
Buf(x)
buf(x)置空標(biāo)記
V(bufempty[2])E
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 1998年度注冊(cè)會(huì)計(jì)師考試試題及答案
- 海南省三亞市2024-2025學(xué)年八年級(jí)上學(xué)期1月期末物理試題(無(wú)答案)
- 2024-2025學(xué)年八年級(jí)上學(xué)期1月期末物理試題(含答案)
- 7天連鎖酒店集團(tuán)工程施工合同
- 2025年度國(guó)家級(jí)礦產(chǎn)資源開(kāi)發(fā)與利用采礦合同范本3篇
- 2024環(huán)保產(chǎn)業(yè)展會(huì)合作合同書(shū)版B版
- 2024年肉類市場(chǎng)購(gòu)銷合同
- 2025便利店會(huì)員積分體系合作協(xié)議3篇
- 2024青年志愿者社會(huì)公益項(xiàng)目合作協(xié)議2篇
- 2024股權(quán)變更與投資協(xié)議
- 高等數(shù)學(xué)說(shuō)課稿PPT課件(PPT 49頁(yè))
- 單片機(jī)交通燈系統(tǒng)設(shè)計(jì)報(bào)告
- 標(biāo)桿房企人力資源體系研究之龍湖
- 規(guī)則大副貨運(yùn)知識(shí)點(diǎn)
- 《2022年上海市初中語(yǔ)文課程終結(jié)性評(píng)價(jià)指南》中規(guī)定的150個(gè)文言實(shí)詞
- 關(guān)于轉(zhuǎn)發(fā)《關(guān)于進(jìn)一步加強(qiáng)少先隊(duì)輔導(dǎo)員隊(duì)伍建設(shè)的若干意見(jiàn)》的通知
- 愛(ài)麗絲夢(mèng)游仙境話劇中英文劇本(共6頁(yè))
- 書(shū)法少年宮活動(dòng)記錄
- 鐵路橋梁鋼結(jié)構(gòu)設(shè)計(jì)規(guī)范(TB100022--99)修訂簡(jiǎn)介
- 水文氣象報(bào)告
- 應(yīng)急資金投入保障機(jī)制
評(píng)論
0/150
提交評(píng)論