計(jì)算機(jī)操作系統(tǒng)(第二版)課件:管程機(jī)制_第1頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第二版)課件:管程機(jī)制_第2頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第二版)課件:管程機(jī)制_第3頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第二版)課件:管程機(jī)制_第4頁(yè)
計(jì)算機(jī)操作系統(tǒng)(第二版)課件:管程機(jī)制_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

鎖機(jī)制、專用指令等存在“忙等”現(xiàn)象由用戶編寫(xiě)同步控制代碼:加重了用戶負(fù)擔(dān)!各同步原語(yǔ)操作分散在用戶程序中,系統(tǒng)無(wú)法有效地控制和管理;

用戶編程時(shí)若使用wait()/signal()操作不當(dāng),后果嚴(yán)重(死鎖)基于以上情況,1971年DIjkstra提出了“秘書(shū)進(jìn)程”思想。1973年Hansan和Hoare又將“秘書(shū)進(jìn)程”思想發(fā)展為“管程”概念,把并發(fā)進(jìn)程間的同步操作分別集中在相應(yīng)的管程中。

進(jìn)程同步3.4.4管程機(jī)制1.管程的引人:前述互斥手段的不足:一個(gè)管程定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)和能為并發(fā)進(jìn)程所執(zhí)行(在該數(shù)據(jù)結(jié)構(gòu)上)的一組操作,這組操作能同步進(jìn)程和改變管程中的數(shù)據(jù)3.4.4管程機(jī)制2.管程的定義管程組成:管程名字局部于管程的共享變量的說(shuō)明;對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的一組過(guò)程;初始化局部變量的語(yǔ)句。局部數(shù)據(jù)條件變量過(guò)程1過(guò)程n出口變量初始化代碼管程入口等待調(diào)用進(jìn)程隊(duì)列3.4.4管程機(jī)制2.管程的定義

管程特性:信息隱蔽性

任一時(shí)刻,管程中只能有一個(gè)活躍進(jìn)程3.條件變量每個(gè)獨(dú)立的條件變量是和進(jìn)程需要等待的某種原因(或說(shuō)條件)相聯(lián)系的

當(dāng)定義一個(gè)條件變量時(shí),系統(tǒng)就建立一個(gè)相應(yīng)的等待隊(duì)列。

條件變量的操作:C.wait:阻塞調(diào)用進(jìn)程,并使管程可用C.signal:喚醒相應(yīng)條件變量上的等待進(jìn)程Javawait()notify()C#monitor.wait()monitor.pulse()3.條件變量

引入條件變量后的一個(gè)可能問(wèn)題:進(jìn)程Q執(zhí)行C.wait()阻塞;進(jìn)程P執(zhí)行C.signal()喚醒進(jìn)程Q后,管程中有兩個(gè)活躍進(jìn)程問(wèn)題:解決方法:P等待,直到Q退出管程或等待另一個(gè)條件Q等待,直到P退出管程或等待另一個(gè)條件Hanson采用了折中的方法:規(guī)定C.signal()為過(guò)程體最后一個(gè)操作,當(dāng)進(jìn)程P執(zhí)行完畢后,P退出管程,另一個(gè)進(jìn)程Q執(zhí)行。這兩種方法各自有什么優(yōu)缺點(diǎn)?typePC=monitor in,out,count:int;buffer[N]:item; notfull,notempty:condition; procedureput(item)procedureget(item){{if(count==N)thenif(count=0)thennotfull.wait();notempty.wait();buffer(in)=item;nextc=buffer(out);in=(in+1)modN;out=(out+1)modN;count=count+1;count=count-1;notempty.signal();notfull.signal();}}Beginin=out=count=0;end3.4.4管程機(jī)制4.利用管程解決生產(chǎn)者--消費(fèi)者問(wèn)題

PC管程定義:procedureproducerprocedureconsumer{{while(true)while(true){{produceranitem;PC.get(item);PC.put(item);consumetheitem;}}}}

monitor.enter;PC.put(item);monitor.leave;3.4.4管程機(jī)制4.利用管程解決生產(chǎn)者--消費(fèi)者問(wèn)題

生產(chǎn)者及消費(fèi)者算法描述:以下關(guān)于管程的說(shuō)法中,錯(cuò)誤的是()管程是進(jìn)程同步工具,解決信號(hào)量機(jī)制大量同步操作分散的問(wèn)題管程每次只允許一個(gè)進(jìn)程進(jìn)入管程管程中signal操作的作用和信號(hào)量機(jī)制的V操作相同管程是被進(jìn)程調(diào)用的,是語(yǔ)法范圍,無(wú)法創(chuàng)建和撤銷ABCD提交單選題10分下面關(guān)于管程的說(shuō)法,不正確的是()管程是一種進(jìn)程同步機(jī)制管程是一種編程語(yǔ)言成分管程是一種系統(tǒng)調(diào)用管程比信號(hào)量更容易保證并行編程的正確性ABCD提交單選題10分下面關(guān)于管程的描述中錯(cuò)誤的是(

)管程是一種進(jìn)程同步機(jī)制,解決信號(hào)量機(jī)制中大量同步操作分散的問(wèn)題管程機(jī)制需要編譯器的支持任一時(shí)刻,管程中只能有一個(gè)活躍進(jìn)程管程外過(guò)程可以

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論