《同步通信與死鎖》PPT課件

《同步通信與死鎖》PPT課件

ID:39436808

大小:597.10 KB

頁數(shù):67頁

時間:2019-07-03

《同步通信與死鎖》PPT課件_第1頁
《同步通信與死鎖》PPT課件_第2頁
《同步通信與死鎖》PPT課件_第3頁
《同步通信與死鎖》PPT課件_第4頁
《同步通信與死鎖》PPT課件_第5頁
資源描述:

《《同步通信與死鎖》PPT課件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第三章同步、通信與死鎖13.1進(jìn)程的同步與互斥在多道程序的環(huán)境中,系統(tǒng)中的多個進(jìn)程可以并發(fā)執(zhí)行,同時它們又要共享系統(tǒng)中的資源,由此諸進(jìn)程間會產(chǎn)生錯綜復(fù)雜的相互制約的關(guān)系。一、進(jìn)程的相互制約關(guān)系1.間接相互制約關(guān)系源于資源共享若一個進(jìn)程要求使用某一資源,而該資源正被另一個進(jìn)程使用,并且這一資源不允許兩個進(jìn)程同時訪問,那么該進(jìn)程只有等待,只有這一資源釋放后才能使用。2.直接相互制約關(guān)系源于進(jìn)程間的合作一組進(jìn)程分工協(xié)作,在執(zhí)行的先后次序有約束,在一些關(guān)鍵點上協(xié)調(diào)工作。若一個進(jìn)程運行到某點時,在尚未收到另一協(xié)作進(jìn)程發(fā)來的信息前應(yīng)阻塞自己,等協(xié)作進(jìn)

2、程發(fā)來消息后方可繼續(xù)執(zhí)行。進(jìn)程——資源——進(jìn)程進(jìn)程——進(jìn)程2進(jìn)程間這種相互依賴又相互制約,相互合作又相互競爭的關(guān)系,主要表現(xiàn)在進(jìn)程互斥和進(jìn)程同步兩方面二、進(jìn)程互斥引例:宿舍電話的使用打印機(jī)的使用1、臨界資源一次僅允許一個進(jìn)程使用的資源稱為臨界資源。引例中的電話和打印機(jī)都屬于臨界資源。還有光盤刻錄機(jī)、繪圖儀、共享變量、共享的數(shù)據(jù)結(jié)構(gòu)等等也是臨界資源。2、臨界區(qū):每個進(jìn)程中訪問臨界資源的那段程序段稱為臨界區(qū)。(臨界段)3例:統(tǒng)計兩個進(jìn)程P1和P2對共享變量count的訪問計數(shù)。P1:….P2:….R1=count;R2=count;R1=R1

3、+1;R2=R2+1;count=R1;count=R2;….….兩進(jìn)程并發(fā)執(zhí)行,可能的執(zhí)行順序為:P1:R1=count;R1=R1+1;P2:R2=count;R2=R2+1;count=R2;P1:count=R1;雖然兩個進(jìn)程各自都執(zhí)行了對count加1的操作,但結(jié)果為何count只增加1?count是臨界資源,P1、P2訪問count的兩個程序段就是臨界區(qū),兩個進(jìn)程必須互斥的進(jìn)入臨界區(qū),否則就可能出與時間有關(guān)的錯誤.43、進(jìn)程互斥當(dāng)某一進(jìn)程正在訪問某臨界區(qū)時,就不允許其它進(jìn)程進(jìn)入,否則就會發(fā)生無法估計的錯誤。進(jìn)程之間的這種相互制

4、約的關(guān)系稱為進(jìn)程互斥。4、進(jìn)入臨界區(qū)的準(zhǔn)則:每次至多有一個進(jìn)程進(jìn)入臨界區(qū)內(nèi)執(zhí)行;若已有進(jìn)程在臨界區(qū)中,試圖進(jìn)入此臨界區(qū)的其他進(jìn)程應(yīng)等待;進(jìn)入臨界區(qū)的進(jìn)程應(yīng)在有限時間內(nèi)退出,以便讓等待隊列中的一個進(jìn)程進(jìn)入。5三、進(jìn)程同步引例:兩位同學(xué)約好星期天去玩,早上8:00在校門口,不見不散。當(dāng)一個同學(xué)先來到校門口,要等另一個同學(xué),到齊后一起去玩?;コ獾母拍顏碜杂谥T進(jìn)程對臨界資源的競爭,同步來源于多個進(jìn)程的合作。在人類社會中競爭與合作是永恒的。進(jìn)程同步:幾個進(jìn)程相互合作,一個進(jìn)程到達(dá)某點后,若另一進(jìn)程尚未完成某些操作,就必須停下來等待,只有等另一進(jìn)程的

5、這些操作完成了才能繼續(xù)執(zhí)行。6例:計算fun1(X)*fun2(y)兩進(jìn)程合作完成任務(wù)進(jìn)程1:計算fun1(X)。進(jìn)程2:計算fun2(X);與進(jìn)程1結(jié)果相乘。進(jìn)程1和進(jìn)程2并發(fā)執(zhí)行。73.2進(jìn)程互斥的實現(xiàn)一、實現(xiàn)進(jìn)程互斥的軟件算法現(xiàn)在很少用軟件方法解決互斥,但通過學(xué)習(xí)軟件解法能使讀者了解到,在早期進(jìn)程互斥問題的解決并不是一件很簡單的事。8嘗試(1)boolinside1=false;//P1不在其臨界區(qū)內(nèi)boolinside2=false;//P2不在其臨界區(qū)內(nèi)cobeginprocessP1()processP2(){{while(i

6、nside2);while(inside1);inside1=true;inside2=true;{臨界區(qū)};{臨界區(qū)};inside1=false;inside2=false;}}coendP1和P2可能同時進(jìn)入臨界區(qū)9嘗試(2)boolinside1=false;//P1不在其臨界區(qū)內(nèi)boolinside2=false;//P2不在其臨界區(qū)內(nèi)cobeginprocessP1()processP2(){{inside1=true;inside2=true;while(inside2);while(inside1);{臨界區(qū)};{臨界區(qū)}

7、;inside1=false;inside2=false;}}coendP1和P2可能永遠(yuǎn)等待。10processP0(){inside[0]=true;turn=1;while(inside[1]&&turn==1);{臨界區(qū)};inside[0]=false;}processP1(){inside[1]=true;turn=0;while(inside[0]&&turn==0);{臨界區(qū)};inside[1]=false;}cobegincoendboolinside[2];inside[0]=false;inside[1]=fals

8、e;enum{0,1}turn;Peterson算法11為每一進(jìn)程設(shè)標(biāo)志位inside[i],當(dāng)inside[i]=true時,表示進(jìn)程pi要求進(jìn)入,或正在臨界區(qū)中執(zhí)行。此外再設(shè)一個變量tur

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。