四、進(jìn)程的互斥( 綜合應(yīng)用 )
1、 進(jìn)程互斥 的含義:進(jìn)程的互斥是指當(dāng)有若干進(jìn)程都要使用某一共享資源時(shí),任何時(shí)刻最多只允許一個(gè)進(jìn)程去使用,其他要使用該資源的進(jìn)程必須等待,直到占用資源者釋放了該資源。 PV操作是兩個(gè)過(guò)程,由他們兩個(gè)來(lái)控制一個(gè)信號(hào)S,假設(shè)S是紅燈的個(gè)數(shù)。
每個(gè)進(jìn)程進(jìn)入臨界區(qū)前都要先執(zhí)行P操作。退出臨界區(qū)時(shí)執(zhí)行V操作。用下面的比喻很容易理解:
臨界區(qū)門(mén)前有棵樹(shù)(S)
用來(lái)掛紅燈
進(jìn)程想進(jìn)CPU的門(mén)
先得上樹(shù)取盞燈(調(diào)用一次P操作)
取下一個(gè)去敲門(mén)(S=S-1)
如果樹(shù)上沒(méi)燈取(S≤0)
樹(shù)說(shuō)欠你一盞燈(S為負(fù)時(shí))
沒(méi)轍只好外邊排隊(duì)等( W ait (S))
得燈進(jìn)程續(xù)運(yùn)行
運(yùn)行完了要出門(mén)(調(diào)用一次V操作)
馬上還回一盞燈(S=S+1)
若有進(jìn)程在催債(S≤0)
放個(gè)進(jìn)去事完成( R elease (S))
2、實(shí)現(xiàn)進(jìn)程互斥的工具——PV操作。
PV操作 是由兩個(gè)操作,即P操作和V操作組成。P操作和V操作是兩個(gè)在信號(hào)量上進(jìn)行操作的過(guò)程。假定用S表示信號(hào)量則把這兩個(gè)過(guò)程記作P(S)和V(S),它們的定義如下: Procedue P(Var S: Semaphore); begin S:=S-1; if S<0 then W(S) end; {P} Procedue V(Var S: Semaphore); begin S:=S+1; if S<=0 then R(S) end; {V}
為了確保PV操作自身的正確執(zhí)行,因此P(S)和V(S)操作中不可中斷,這種 不可被中斷的過(guò)程稱(chēng)為“原語(yǔ) ”。
3、用PV操作管理相關(guān)臨界區(qū)的一般形式
一個(gè)信號(hào)量與一組涉及共享變量的相關(guān)臨界區(qū)聯(lián)系起來(lái),信號(hào)量的初值定為“1”
任何一個(gè)進(jìn)程要進(jìn)入臨界區(qū)前先調(diào)用P操作,執(zhí)行臨界區(qū)的操作后,退出臨界區(qū)時(shí)調(diào)用V操作。
由于信號(hào)量的初值為“1”,P操作起到了限制一次只有一個(gè)進(jìn)程進(jìn)入臨界區(qū)的作用,其余進(jìn)程欲進(jìn)入臨界區(qū)必須符合對(duì)臨界區(qū)管理的第一個(gè)要求,即一次最多讓一個(gè)進(jìn)程在臨界區(qū)執(zhí)行。進(jìn)程退出后執(zhí)行V操作,若有進(jìn)程在等待則釋放一個(gè)進(jìn)程,這樣就達(dá)到了對(duì)臨界區(qū)管理的第二個(gè)和第三個(gè)要求(即不能無(wú)限逗留也不能無(wú)限等待)。
4、分析進(jìn)程互斥問(wèn)題并用PV操作實(shí)現(xiàn)進(jìn)程互斥。
相關(guān)推薦:2010年自考工學(xué)類(lèi)“操作系統(tǒng)原理”復(fù)習(xí)資料匯總