資源描述:
《《os進(jìn)程同步》PPT課件》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、軟件技術(shù)基礎(chǔ)制作主講段景山段景山處理機(jī)管理進(jìn)程的同步1處理機(jī)的管理功能分為:進(jìn)程的描述進(jìn)程的控制進(jìn)程的同步進(jìn)程的通信進(jìn)程的調(diào)度處理機(jī)管理2第三章進(jìn)程的同步與通信第二篇操作系統(tǒng)進(jìn)程的同步關(guān)系進(jìn)程的同步原則信號量進(jìn)程的通信3進(jìn)程的同步進(jìn)程同步問題的提出進(jìn)程異步推進(jìn)可能造成混亂混亂可能導(dǎo)致不可再現(xiàn)進(jìn)程同步目標(biāo)維持進(jìn)程并發(fā)性以提高系統(tǒng)效率進(jìn)程執(zhí)行異步(斷續(xù))資源的非封閉(共享)結(jié)果不可再現(xiàn)進(jìn)程同步進(jìn)程間相互合作資源有效共享結(jié)果可再現(xiàn)4進(jìn)程的同步關(guān)系3.1進(jìn)程同步的基本概念進(jìn)程間的兩種主要關(guān)系臨界資源與臨界區(qū)進(jìn)程同步必須遵循的原則3.
2、1.1進(jìn)程間的兩種主要關(guān)系進(jìn)程間的關(guān)系與進(jìn)程間的獨(dú)立性進(jìn)程間的關(guān)系是在進(jìn)程間相對獨(dú)立的前提下發(fā)展的獨(dú)立獲得資源獨(dú)立調(diào)度5進(jìn)程間的同步關(guān)系(一)正常行車到站停車開車售票開車門關(guān)車門司機(jī)售票員合作合作檢查車況維持秩序6獲得打印數(shù)據(jù)進(jìn)程間的同步關(guān)系(二)打印進(jìn)程1打印進(jìn)程2打印打印互斥獲得打印數(shù)據(jù)7進(jìn)程間的同步關(guān)系(三)計算進(jìn)程打印進(jìn)程計算結(jié)果送到Buffer從Buffer中取數(shù)Buffer互斥完成數(shù)據(jù)計算打印通知打印進(jìn)程打印通知計算進(jìn)程送下一個數(shù)合作8進(jìn)程間的同步關(guān)系相互合作競爭資源司機(jī)與售票員多個打印者計算者與打印者9正常行車
3、到站停車開車售票開車門關(guān)車門司機(jī)售票員同步同步到站停車否是檢查車況維持秩序否關(guān)車門是10同步實(shí)現(xiàn)初探(二)打印進(jìn)程1打印進(jìn)程2打印打印互斥獲得打印數(shù)據(jù)獲得打印數(shù)據(jù)打印機(jī)可用?設(shè)置打印機(jī)為不可用是否打印機(jī)可用?設(shè)置打印機(jī)為不可用是否11同步實(shí)現(xiàn)初探(三)計算進(jìn)程打印進(jìn)程計算結(jié)果送到Buffer從Buffer中取數(shù)Buffer互斥互斥向打印進(jìn)程發(fā)信號通知其從Buffer里取數(shù)Buffer空?否是完成數(shù)據(jù)計算打印向計算進(jìn)程發(fā)信號通知其向Buffer送數(shù)Buffer空?否是合作12進(jìn)程間的同步關(guān)系進(jìn)程同步時面臨的兩種主要關(guān)系相互合作
4、競爭資源司機(jī)與售票員多個打印者計算者與打印者事件、設(shè)備等抽象為資源對進(jìn)程間關(guān)系的處理變?yōu)閷Y源的訪問方式13臨界資源3.1.2臨界資源與臨界區(qū)(1)臨界資源一次只允許一個進(jìn)程訪問的資源資源狀態(tài)為臨界:0或1(2)臨界區(qū)每個進(jìn)程用于訪問臨界資源的那段程序同類臨界區(qū):同類資源的臨界區(qū)進(jìn)入?yún)^(qū)退出區(qū)最簡單的資源14臨界區(qū)進(jìn)入?yún)^(qū)臨界區(qū)退出區(qū)進(jìn)入?yún)^(qū)臨界區(qū)退出區(qū)........................阻塞等待資源釋放改變資源狀態(tài)釋放資源喚醒等待進(jìn)程進(jìn)程1進(jìn)程215同步四原則3.1.3同步機(jī)制應(yīng)遵循的原則空閑讓進(jìn)忙則等待有限等待讓權(quán)
5、等待16同步原則進(jìn)程同步應(yīng)遵循的原則空閑讓進(jìn)當(dāng)資源空閑時,應(yīng)當(dāng)允許訪問資源的進(jìn)程進(jìn)入臨界區(qū)忙則等待當(dāng)資源被占用時,應(yīng)使申請訪問該資源的進(jìn)程等待,等待使用者歸還資源兩個基本原則,必須遵循17同步原則進(jìn)程同步應(yīng)遵循的原則讓權(quán)等待在進(jìn)程等待資源時,從執(zhí)行態(tài)轉(zhuǎn)為阻塞態(tài),應(yīng)當(dāng)讓出CPU的使用權(quán)。系統(tǒng)將把CPU分配給其它進(jìn)程使用,以提高系統(tǒng)效率有限等待系統(tǒng)應(yīng)保證等待的進(jìn)程能在有限的時間內(nèi)獲得資源,繼續(xù)執(zhí)行,以防止無限等待浪費(fèi)該進(jìn)程已占用的資源18鎖機(jī)制3.1.4臨界資源鎖機(jī)制例:商場的試衣間是互斥資源是臨界資源是共享資源每個顧客必須遵循
6、以下過程使用試衣間:靠鎖實(shí)現(xiàn)資源的共享管理觀察鎖狀態(tài)關(guān)鎖使用試衣間開鎖19鎖機(jī)制臨界資源鎖機(jī)制鎖鎖變量L每個進(jìn)程必須按照以下過程操作資源L=1關(guān)閉狀態(tài),資源忙L=0打開狀態(tài),資源空閑抽象L=1臨界區(qū)L=0……20鎖機(jī)制實(shí)現(xiàn)一種簡單的鎖操作實(shí)現(xiàn)voidlock(L){check:if(L==1)gotocheck;elseL=1;}voidunlock(L){L=0;}21鎖機(jī)制實(shí)現(xiàn)............check:if(L==1){gotocheck;elseL=1;臨界區(qū)L進(jìn)程1進(jìn)程2unlock(L);......ch
7、eck:if(L==1){gotocheck;elseL=1;臨界區(qū)unlock(L);......0101022鎖操作模型鎖操作的一般模型Pi:......lock(L)C(i)unlock(L).........Pj:......lock(L)C(j)unlock(L).........C(i):Pi的臨界區(qū)Pi:進(jìn)程i23出了問題的鎖............check:if(L==1){gotocheck;elseL=1;臨界區(qū)unlock(L);......check:if(L==1){gotocheck;elseL
8、=1;臨界區(qū)unlock(L);......出現(xiàn)問題的鎖進(jìn)程1進(jìn)程2L01尚未執(zhí)行問題出在?判斷狀態(tài)后改變狀態(tài)前被打斷24鎖機(jī)制實(shí)現(xiàn)關(guān)鎖操作不可被打斷用原語實(shí)現(xiàn)關(guān)鎖操作關(guān)鎖操作在一個指令周期內(nèi)完成(1)引入TS的操作(2)采用“exchange”(swap)指令利用特殊硬件機(jī)制和指令,使關(guān)