第4節(jié)操作系統(tǒng)進(jìn)程之間同步與互斥_第1頁(yè)
第4節(jié)操作系統(tǒng)進(jìn)程之間同步與互斥_第2頁(yè)
第4節(jié)操作系統(tǒng)進(jìn)程之間同步與互斥_第3頁(yè)
第4節(jié)操作系統(tǒng)進(jìn)程之間同步與互斥_第4頁(yè)
第4節(jié)操作系統(tǒng)進(jìn)程之間同步與互斥_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第4節(jié)操作系統(tǒng)進(jìn)程之間同步與互斥第一頁(yè),共30頁(yè)。并發(fā)進(jìn)程之間有兩種制約關(guān)系間接制約關(guān)系(互斥)直接制約關(guān)系(同步)第二頁(yè),共30頁(yè)?;コ鈱?duì)于某個(gè)共享資源,如果一個(gè)任務(wù)正在使用,其他任務(wù)只能等待,等到該任務(wù)釋放該資源后,等待的任務(wù)之一才能使用它,進(jìn)程間的這種相互制約關(guān)系稱(chēng)為互斥

互斥是由于競(jìng)爭(zhēng)使用資源引起的第三頁(yè),共30頁(yè)。同步同步由合作引起

相關(guān)的任務(wù)在執(zhí)行上要有先后次序,一個(gè)任務(wù)要等其伙伴發(fā)來(lái)通知,或建立了某個(gè)條件后才能繼續(xù)執(zhí)行,否則只能等待。這種關(guān)系稱(chēng)為進(jìn)程同步

第四頁(yè),共30頁(yè)。第2單元進(jìn)程管理第4節(jié)進(jìn)程之間的同步與互斥同步與互斥概念同步與互次解決辦法舉例第五頁(yè),共30頁(yè)。信號(hào)燈和P、V操作什么是信號(hào)燈

信號(hào)燈是一個(gè)確定的二元組(s,q),s是一個(gè)具有非負(fù)初值的整型變量,q是一個(gè)初始狀態(tài)為空的隊(duì)列。

信號(hào)燈的操作由操作系統(tǒng)內(nèi)核提供的原語(yǔ)操作,這個(gè)操作稱(chēng)為P、V操作創(chuàng)建信號(hào)燈時(shí),應(yīng)準(zhǔn)確說(shuō)明信號(hào)燈的初值,且這個(gè)初值絕不能為負(fù)值第六頁(yè),共30頁(yè)。P操作

入口S-1→SS≥0?轉(zhuǎn)進(jìn)程調(diào)度返回

入信號(hào)燈等待隊(duì)列

置“等待狀態(tài)”≥00信號(hào)燈的值:

>=

0時(shí),表示綠燈,代表有資源可用

<

0時(shí),表示紅燈,代表沒(méi)資源可用 P操作用于判斷資源是否可用第七頁(yè),共30頁(yè)。V操作

入口S+1→S

從信號(hào)燈的等待隊(duì)列中取出首元素

入就緒隊(duì)列

置“就緒狀態(tài)”

返回S≤0?>0V操作用于釋放資源,如果有進(jìn)程再等待這個(gè)資源,那么喚醒它信號(hào)燈的值:

<=

0時(shí),表示有進(jìn)程在等待這個(gè)信號(hào)燈

第八頁(yè),共30頁(yè)。并發(fā)進(jìn)程之間有兩種制約關(guān)系間接制約關(guān)系(互斥)直接制約關(guān)系(同步)第九頁(yè),共30頁(yè)。臨界區(qū)是進(jìn)程中對(duì)臨界資源使用的程序段,稱(chēng)為相對(duì)于該臨界資源的臨界區(qū)。臨界資源必須互斥使用的資源稱(chēng)為臨界資源。

硬件:如輸入機(jī)、打印機(jī)、磁帶機(jī)等軟件:如公用變量、數(shù)據(jù)、表格、隊(duì)列等臨界區(qū)

x

:=x+1;csa{進(jìn)程P1進(jìn)程P2x

:=x+1;csb{只要p1和p2不同時(shí)進(jìn)入各自的臨界區(qū),就可以互斥使用同一臨界資源互斥相關(guān)概念第十頁(yè),共30頁(yè)。main(){intmutex=1;∕*互斥信號(hào)燈*∕

cobeginp1();

p2();

coend}p1()p2(){{p(mutex);p(mutex);

csa

;csb

;

v(mutex);v(mutex);

}}信號(hào)燈可能的取值mutex=1

表示沒(méi)有進(jìn)程進(jìn)入臨界區(qū);

mutex=0

表示有一個(gè)進(jìn)程進(jìn)入臨界區(qū);mutex=-1

表示一個(gè)進(jìn)程進(jìn)入臨界區(qū),另一個(gè)進(jìn)程等待進(jìn)入。用信號(hào)燈的P、V操作實(shí)現(xiàn)互斥的程序描述

兩個(gè)并發(fā)進(jìn)程,互斥信號(hào)燈的取值范圍1、0和-1三個(gè)值。第十一頁(yè),共30頁(yè)。舉例P954-12P954-18(3)第十二頁(yè),共30頁(yè)。并發(fā)進(jìn)程之間有兩種制約關(guān)系間接制約關(guān)系(互斥)直接制約關(guān)系(同步)第十三頁(yè),共30頁(yè)。同步舉例生產(chǎn)者消費(fèi)者問(wèn)題合作進(jìn)程第十四頁(yè),共30頁(yè)。單緩沖區(qū)的生產(chǎn)者與消費(fèi)者問(wèn)題

緩沖區(qū)bufiopcp兩個(gè)進(jìn)程的任務(wù)計(jì)算進(jìn)程cp經(jīng)過(guò)計(jì)算,將計(jì)算結(jié)果送入buf;打印進(jìn)程iop把buf中的數(shù)據(jù)取出打印。第十五頁(yè),共30頁(yè)。main(){intsa=0;∕*表示buf中有無(wú)信息*∕

intsb=1;∕*表示buf中有無(wú)空位置*∕

cobegincp();iop();

coend}cp()iop(){{while(計(jì)算未完成)while(打印工作未完成){{

得到一個(gè)計(jì)算結(jié)果;p(sa);

p(sb);從緩沖區(qū)中取一數(shù);將數(shù)送到緩沖區(qū)中;v(sb);

v(sa);從打印機(jī)上輸出;

}}}}

緩沖區(qū)bufiopcp第十六頁(yè),共30頁(yè)。生產(chǎn)者——消費(fèi)者問(wèn)題的一般解答

生產(chǎn)者:p1—pm,負(fù)責(zé)將產(chǎn)品放入有界緩沖區(qū),緩沖區(qū)中無(wú)空位置時(shí),要等待;向有界緩沖區(qū)放入物品后,要告訴消費(fèi)者消費(fèi)者:c1-ck,負(fù)責(zé)將產(chǎn)品從緩沖區(qū)中取出,當(dāng)有界緩沖區(qū)中無(wú)物品時(shí),要等待;從有界緩沖區(qū)取出物品后,要告訴生產(chǎn)者有空位了。有界緩沖區(qū):可以放n個(gè)產(chǎn)品,臨界資源c1p1c2c3ckp2p3pm第十七頁(yè),共30頁(yè)。程序描述main(){intsa=0;∕*滿緩沖區(qū)的數(shù)目*∕

intsb=n;∕*空緩沖區(qū)的數(shù)目*∕

intmutex=1;∕*對(duì)有界緩沖區(qū)進(jìn)行操作的互斥信號(hào)燈*∕

cobeginp1();p2();…pm();

c1();c2();…ck();

coend}第十八頁(yè),共30頁(yè)。pi()cj(){{while(生產(chǎn)未完成)while(還要繼續(xù)消費(fèi)){{

p(sa);生產(chǎn)一個(gè)產(chǎn)品;p(mutex);

p(sb);從有界緩沖區(qū)中取產(chǎn)品;

p(mutex);v(empty);送一個(gè)產(chǎn)品到有界緩沖v(sb);

v(mutex);消費(fèi)一個(gè)產(chǎn)品;

v(sa);

}}}}生產(chǎn)者-消費(fèi)者問(wèn)題是一個(gè)既有同步又有互斥的問(wèn)題。第十九頁(yè),共30頁(yè)。同步舉例生產(chǎn)者消費(fèi)者問(wèn)題合作進(jìn)程第二十頁(yè),共30頁(yè)。合作進(jìn)程的執(zhí)行次序表示

進(jìn)程流圖

p3sfp5p1p2p4p6p9p10p8fsp5p6p7sf第二十一頁(yè),共30頁(yè)。pbpcpafsmain(){intsb=0;∕*表示pb進(jìn)程能否開(kāi)始執(zhí)行*∕

intsc=0;∕*表示pc進(jìn)程能否開(kāi)始執(zhí)行*∕

cobeginpa();

pb();

pc();

coend}pa()pb()pc(){{{

p(sb);p(sc);

v(sb);

v(sc);

}}}一分支一個(gè)信號(hào)燈,初值為0第二十二頁(yè),共30頁(yè)。關(guān)于信號(hào)量的值如果信號(hào)量是用來(lái)表示一個(gè)或者多個(gè)事件發(fā)生的,那么該信號(hào)量的初始值通常賦為0;如果信號(hào)量用于對(duì)共享資源的訪問(wèn),那么該信號(hào)量的初始值應(yīng)賦1;如果信號(hào)量用來(lái)表示運(yùn)行任務(wù)訪問(wèn)n個(gè)相同的資源,那么該信號(hào)量的初始值應(yīng)賦為n,并把該信號(hào)量作為一個(gè)可計(jì)數(shù)的信號(hào)量使用。當(dāng)信號(hào)量值大于零時(shí)表示可分配資源的個(gè)數(shù);當(dāng)信號(hào)量值小于零時(shí),其絕對(duì)值為等待使用該資源的進(jìn)程的個(gè)數(shù)。第二十三頁(yè),共30頁(yè)。第2單元進(jìn)程管理第4節(jié)進(jìn)程之間的同步與互斥同步與互斥概念同步與互次解決辦法舉例第二十四頁(yè),共30頁(yè)。例題在下面的敘述中,正確的是(

)。A.臨界資源是非共享資源

B.臨界資源是任意共享資源C.臨界資源是互斥共享資源

D.臨界資源是同時(shí)共享資源

對(duì)進(jìn)程間互斥地

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論