進(jìn)程同步與互斥

進(jìn)程同步與互斥

ID:19908412

大?。?.20 MB

頁(yè)數(shù):125頁(yè)

時(shí)間:2018-10-07

進(jìn)程同步與互斥_第1頁(yè)
進(jìn)程同步與互斥_第2頁(yè)
進(jìn)程同步與互斥_第3頁(yè)
進(jìn)程同步與互斥_第4頁(yè)
進(jìn)程同步與互斥_第5頁(yè)
資源描述:

《進(jìn)程同步與互斥》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、計(jì)科系姜云杰1進(jìn)程的互斥——你要,我也要多道程序設(shè)計(jì)帶來(lái)的問題:并發(fā)執(zhí)行的多個(gè)進(jìn)程可能產(chǎn)生互斥或同步的相互制約關(guān)系,不采取措施,可能導(dǎo)致結(jié)果的不可再現(xiàn)性。影響系統(tǒng)效率,而且還可以導(dǎo)致系統(tǒng)崩潰。為此,現(xiàn)代操作系統(tǒng)都在內(nèi)核中設(shè)有進(jìn)程的互斥同步機(jī)制,以控制并發(fā)執(zhí)行的諸進(jìn)程能有效的共享資源和相互合作,同時(shí)使并發(fā)程序的執(zhí)行仍具有可再現(xiàn)性。計(jì)科系姜云杰2一、互斥的定義所謂進(jìn)程互斥,指的是對(duì)某個(gè)系統(tǒng)資源,一個(gè)進(jìn)程正在使用它,另外一個(gè)想用它的進(jìn)程就必須等待,而不能同時(shí)使用。進(jìn)程互斥是多道程序系統(tǒng)中進(jìn)程間存在的一種源于資源共享的制約關(guān)系,也稱間接制約關(guān)系,主要是由被共享資源的使用性質(zhì)所決定的。計(jì)科系

2、姜云杰3這種限定進(jìn)程只能互斥地訪問它的資源叫臨界資源(指一次僅允許一個(gè)進(jìn)程使用的資源)。臨界資源限定了使用者只能互斥地使用它。操作系統(tǒng)也不能中途從搶先者手中把臨界資源搶來(lái)給其他進(jìn)程用。因此,臨界資源也是不可剝奪性資源。例:打印機(jī)、共享變量等。計(jì)算機(jī)系統(tǒng)中可剝奪性使用的資源主要有CPU、內(nèi)存和磁盤等。計(jì)科系姜云杰45臨界區(qū):進(jìn)程中訪問臨界資源的那段程序代碼稱為臨界區(qū)或臨界段。使用同一臨界資源的不同進(jìn)程中的臨界區(qū)稱為同類臨界區(qū)或相關(guān)臨界區(qū)。為實(shí)現(xiàn)對(duì)臨界資源的互斥訪問,應(yīng)保證諸進(jìn)程互斥地進(jìn)入各自的臨界區(qū)。但無(wú)論采用何種方法,都應(yīng)遵循臨界區(qū)的使用原則,即“空則讓進(jìn),忙則等待,等則有限,等則

3、讓權(quán)”。6二、上鎖和開鎖原語(yǔ)現(xiàn)代操作系統(tǒng)用來(lái)實(shí)現(xiàn)進(jìn)程的互斥、同步的工具有多種,如上鎖與開鎖原語(yǔ)、信號(hào)燈機(jī)制、管程機(jī)制等。上鎖與開鎖是一種最簡(jiǎn)單的進(jìn)程互斥方法,它使用一個(gè)鎖變量W來(lái)表示某種臨界資源的狀態(tài),W=0表示資源空閑可用W=1表示資源正被使用71.上鎖原語(yǔ):LOCK(W)L1:如果W=1那么轉(zhuǎn)向L1;否則W=1返回voidlock(鎖變量w){test:if(w為1)gototestelsew=1;/*上鎖*/}/*lock(w)*/1.考察鎖位的值;2.如果原來(lái)的值為0,將鎖位置1;3.如果為1,則返回第一步再次考察82.開鎖原語(yǔ):UNLOCK(W)W=0;返回voidunl

4、ock(鎖變量w){w=0;/*開鎖*/}/*unlock(w)*/當(dāng)進(jìn)程使用完資源后,它必須將鎖位置成“0”,稱為開鎖操作。9三、用上鎖和開鎖原語(yǔ)可以解決并發(fā)進(jìn)程的互斥任何欲進(jìn)入臨界區(qū)的進(jìn)程,必須先執(zhí)行上鎖原語(yǔ)。若上鎖原語(yǔ)順利通過,則進(jìn)程可進(jìn)入臨界區(qū);當(dāng)完成對(duì)臨界區(qū)資源的訪問后再執(zhí)行開鎖原語(yǔ),以釋放該臨界資源。即在相關(guān)進(jìn)程的程序里由上鎖和開鎖原語(yǔ)緊夾著臨界區(qū),就能保證這些進(jìn)程互斥地進(jìn)入各自的臨界區(qū)。10例如,甲、乙兩進(jìn)程要訪問同一類臨界資源甲進(jìn)程:其他代碼;LOCK(W);甲進(jìn)程的臨界區(qū);UNLOCK(W);其他代碼;乙進(jìn)程:其他代碼;LOCK(W);乙進(jìn)程的臨界區(qū);UNLOCK

5、(W);其他代碼;用上鎖用上鎖原語(yǔ)和開鎖原語(yǔ)來(lái)實(shí)現(xiàn)進(jìn)程的互斥的確很簡(jiǎn)單,但處理機(jī)效率不高,因?yàn)樯湘i原語(yǔ)中的條件測(cè)試操作可能引起CPU“忙等”。11信號(hào)量機(jī)制荷蘭著名科學(xué)家,后來(lái)的計(jì)算機(jī)圖靈獎(jiǎng)獲得者,E.W.Dijkstra于1965年提出了用作進(jìn)程同步工具的信號(hào)量(semaphore)機(jī)制,這是一種卓有成效的進(jìn)程互斥同步工具,已被廣泛應(yīng)用于現(xiàn)代計(jì)算機(jī)系統(tǒng)中。計(jì)科系姜云杰12進(jìn)程的同步(synchronism):——你等我,我也等你多道程序系統(tǒng)中,許多進(jìn)程之間可能存在以下兩種制約關(guān)系:1.源于資源共享的間接制約關(guān)系(互斥)2.源于合作相互的直接制約關(guān)系(同步)后者即一種合作進(jìn)程在獨(dú)自

6、并發(fā)執(zhí)行過程中的某些確定的時(shí)序點(diǎn)上“你等我,我也等你”的同步約束,前者可視為后者的特例(前面已經(jīng)介紹)。計(jì)科系姜云杰131.資源共享關(guān)系很多進(jìn)程之間彼此無(wú)關(guān),它們并不知道其它進(jìn)程的存在。例如在分時(shí)系統(tǒng)中,系統(tǒng)分別為每個(gè)用戶(終端)建立一個(gè)進(jìn)程。但這些進(jìn)程既然同處于一個(gè)系統(tǒng)中,也就必然存在著資源共享的關(guān)系,如共享CPU和I/O設(shè)備等。此時(shí),進(jìn)程的主要任務(wù),是保證各個(gè)進(jìn)程能互斥地訪問臨界資源。所以,系統(tǒng)中的資源應(yīng)該不允許用戶進(jìn)程直接使用,而應(yīng)該由系統(tǒng)同一分配。例如:在僅有一臺(tái)打印機(jī)的系統(tǒng)中,兩個(gè)進(jìn)程提出打印請(qǐng)求2.相互合作關(guān)系例如輸入進(jìn)程、計(jì)算進(jìn)程、打印進(jìn)程合作完成一批數(shù)據(jù)的輸入、計(jì)算

7、和打印時(shí)的關(guān)系;中斷響應(yīng)過程;生活中下棋、看病時(shí)等化驗(yàn)結(jié)果等等。計(jì)科系姜云杰14一、同步的定義進(jìn)程同步:指的是兩個(gè)或多個(gè)進(jìn)程為了合作完成同一個(gè)任務(wù),在執(zhí)行速度或某些個(gè)確定的時(shí)序點(diǎn)上必須相互協(xié)調(diào),即一個(gè)進(jìn)程的執(zhí)行依賴于另一個(gè)進(jìn)程——其合作伙伴的消息,當(dāng)一個(gè)進(jìn)程到達(dá)了某一確定點(diǎn)而沒有得到合作伙伴發(fā)來(lái)的“已完成某些操作”的消息時(shí)必須等待,直到該消息到達(dá)被喚醒后,才能繼續(xù)向前推進(jìn)。進(jìn)程同步是多道程序系統(tǒng)中進(jìn)程之間存在的一種主要源于進(jìn)程間合作的制約關(guān)系,也稱直接制約關(guān)系。計(jì)科系

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

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

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