版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、操作系統(tǒng)課程之操作系統(tǒng)課程之PVPV原語原語PV原語通過操作信號(hào)量來處理進(jìn)程間的同步與互斥的問題。其核心就是一段不可分割不可中斷的程序。信號(hào)量的概念1965年由著名的荷蘭計(jì)算機(jī)科學(xué)家Dijkstra提出,其基本思路是用一種新的變量類型(semaphe)來記錄當(dāng)前可用資源的數(shù)量。有兩種實(shí)現(xiàn)方式:1)semaphe的取值必須大于或等于0。0表示當(dāng)前已沒有空閑資源,而正數(shù)表示當(dāng)前空閑資源的數(shù)量;2)semaphe的取值可正可負(fù),負(fù)數(shù)的絕對(duì)值表
2、示正在等待進(jìn)入臨界區(qū)的進(jìn)程個(gè)數(shù)。信號(hào)量是由操作系統(tǒng)來維護(hù)的,用戶進(jìn)程只能通過初始化和兩個(gè)標(biāo)準(zhǔn)原語(P、V原語)來訪問。初始化可指定一個(gè)非負(fù)整數(shù),即空閑資源總數(shù)。P原語:P是荷蘭語Proberen(測(cè)試)的首字母。為阻塞原語,負(fù)責(zé)把當(dāng)前進(jìn)程由運(yùn)行狀態(tài)轉(zhuǎn)換為阻塞狀態(tài),直到另外一個(gè)進(jìn)程喚醒它。操作為:申請(qǐng)一個(gè)空閑資源(把信號(hào)量減1),若成功,則退出;若失敗,則該進(jìn)程被阻塞;V原語:V是荷蘭語Verhogen(增加)的首字母。為喚醒原語,負(fù)責(zé)把
3、一個(gè)被阻塞的進(jìn)程喚醒,它有一個(gè)參數(shù)表,存放著等待被喚醒的進(jìn)程信息。操作為:釋放一個(gè)被占用的資源(把信號(hào)量加1),如果發(fā)現(xiàn)有被阻塞的進(jìn)程,則選擇一個(gè)喚醒之。具體PV原語對(duì)信號(hào)量的操作可以分為三種情況:1)把信號(hào)量視為一個(gè)加鎖標(biāo)志位,實(shí)現(xiàn)對(duì)一個(gè)共享變量的互斥訪問。實(shí)現(xiàn)過程:P(mutex)mutex的初始值為1訪問該共享數(shù)據(jù)V(mutex)非臨界區(qū)2)把信號(hào)量視為是某種類型的共享資源的剩余個(gè)數(shù),實(shí)現(xiàn)對(duì)一類共享資源的訪問。實(shí)現(xiàn)過程:P(res
4、ource)resource的初始值為該資源的個(gè)數(shù)N使用該資源;V(resource)非臨界區(qū)3)把信號(hào)量作為進(jìn)程間的同步工具實(shí)現(xiàn)過程:臨界區(qū)C1;P(S)V(S)臨界區(qū)C2;哲學(xué)家問題PV原語程序2009年03月10日星期二21:29V(c[i1mod5])V(c[i])EndPV原語實(shí)現(xiàn)互斥與同步2008年09月19日星期五17:28PVPV原語的含義原語的含義P操作和V操作是不可中斷的程序段,稱為原語。PV原語及信號(hào)量的概念都是由
5、荷蘭科學(xué)家E.W.Dijkstra提出的。信號(hào)量sem是一整數(shù),sem大于等于零時(shí)代表可供并發(fā)進(jìn)程使用的資源實(shí)體數(shù),但sem小于零時(shí)則表示正在等待使用臨界區(qū)的進(jìn)程數(shù)。P原語操作的動(dòng)作是:(1)sem減1;(2)若sem減1后仍大于或等于零,則進(jìn)程繼續(xù)執(zhí)行;(3)若sem減1后小于零,則該進(jìn)程被阻塞后進(jìn)入與該信號(hào)相對(duì)應(yīng)的隊(duì)列中,然后轉(zhuǎn)進(jìn)程調(diào)度。V原語操作的動(dòng)作是:(1)sem加1;(2)若相加結(jié)果大于零,則進(jìn)程繼續(xù)執(zhí)行;(3)若相加結(jié)果小
6、于或等于零,則從該信號(hào)的等待隊(duì)列中喚醒一等待進(jìn)程,然后再返回原進(jìn)程繼續(xù)執(zhí)行或轉(zhuǎn)進(jìn)程調(diào)度。PV操作對(duì)于每一個(gè)進(jìn)程來說,都只能進(jìn)行一次,而且必須成對(duì)使用。在PV原語執(zhí)行期間不允許有中斷的發(fā)生。用PVPV原語實(shí)現(xiàn)進(jìn)程的互斥原語實(shí)現(xiàn)進(jìn)程的互斥由于用于互斥的信號(hào)量sem與所有的并發(fā)進(jìn)程有關(guān),所以稱之為公有信號(hào)量。公有信號(hào)量的值反映了公有資源的數(shù)量。只要把臨界區(qū)置于P(sem)和V(sem)之間,即可實(shí)現(xiàn)進(jìn)程間的互斥。就象火車中的每節(jié)車廂只有一個(gè)衛(wèi)
7、生間,該車廂的所有旅客共享這個(gè)公有資源:衛(wèi)生間,所以旅客間必須互斥進(jìn)入衛(wèi)生間,只要把衛(wèi)生間放在P(sem)和V(sem)之間,就可以到達(dá)互斥的效果。以下例子說明進(jìn)程的互斥實(shí)現(xiàn)。例1生產(chǎn)圍棋的工人不小心把相等數(shù)量的黑子和白子混裝載一個(gè)箱子里,現(xiàn)要用自動(dòng)分揀系統(tǒng)把黑子和白子分開,該系統(tǒng)由兩個(gè)并發(fā)執(zhí)行的進(jìn)程組成,功能如下:(1)進(jìn)程A專門揀黑子,進(jìn)程B專門揀白子;(2)每個(gè)進(jìn)程每次只揀一個(gè)子,當(dāng)一個(gè)進(jìn)程在揀子時(shí)不允許另一個(gè)進(jìn)程去揀子;分析:分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)操作系統(tǒng)
- 計(jì)算機(jī)操作系統(tǒng)原理分析
- 計(jì)算機(jī)操作系統(tǒng)及答案
- 計(jì)算機(jī)操作系統(tǒng)教案
- 計(jì)算機(jī)操作系統(tǒng)試題
- 計(jì)算機(jī)操作系統(tǒng)題庫
- 計(jì)算機(jī)操作系統(tǒng)習(xí)題及答案
- 計(jì)算機(jī)操作系統(tǒng)習(xí)題及答案
- 計(jì)算機(jī)操作系統(tǒng)試題及答案a
- 計(jì)算機(jī)操作系統(tǒng)作業(yè)及答案
- 計(jì)算機(jī)操作系統(tǒng)作業(yè)2(《計(jì)算機(jī)操作系統(tǒng)》4-5章內(nèi)容)
- “計(jì)算機(jī)操作系統(tǒng)”課程輔導(dǎo)
- 《計(jì)算機(jī)操作系統(tǒng)》試卷(1)
- 計(jì)算機(jī)操作系統(tǒng)試題6
- 計(jì)算機(jī)操作系統(tǒng)課后答案
- 計(jì)算機(jī)操作系統(tǒng)應(yīng)用教案
- 計(jì)算機(jī)操作系統(tǒng) 考試習(xí)題
- 《計(jì)算機(jī)操作系統(tǒng)》ppt課件
- 銀行計(jì)算機(jī)常用操作系統(tǒng)
- 計(jì)算機(jī)操作系統(tǒng) 考試習(xí)題
評(píng)論
0/150
提交評(píng)論