版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初三語(yǔ)文教學(xué)工作總結(jié)01
- 安塞腰鼓第一課時(shí)
- 服務(wù)營(yíng)銷《(第6版)》 課件 第10章 服務(wù)有形展示
- 晚明東林黨議(一)“東林”的概念史 課件高考?xì)v史一輪復(fù)習(xí)
- 2024年汕尾汽車客運(yùn)從業(yè)資格考試
- 偉大的改革開(kāi)放 課件 2024-2025學(xué)年高中政治統(tǒng)編版必修一中國(guó)特色社會(huì)主義
- 2024年撫州客運(yùn)從業(yè)資格證模擬考試
- 2024年?yáng)|營(yíng)客運(yùn)駕駛員從業(yè)資格考試系統(tǒng)
- 2024年柳州2024年道路旅客運(yùn)輸從業(yè)資格證模擬試題
- 2024年青??瓦\(yùn)從業(yè)資格證考試試題庫(kù)及答案解析
- 電商公司網(wǎng)絡(luò)主播績(jī)效考核表
- 2023年大學(xué)生信息素養(yǎng)大賽考試參考題庫(kù)500題(含答案)
- 醫(yī)院會(huì)計(jì)制度
- 大學(xué)生就業(yè)指導(dǎo)(高職)PPT完整全套教學(xué)課件
- 海上油氣集輸工藝和設(shè)備教學(xué)課件
- 2-商業(yè)構(gòu)架層拆除施工方案-八局青島-凱頌廣場(chǎng)
- (完整版)強(qiáng)夯地基處理工程施工方案
- 杭州市會(huì)展策劃與管理專業(yè)人才需求調(diào)研分析
- 人教2011版五年級(jí)美術(shù)下冊(cè)《會(huì)亮的玩具》教案及教學(xué)反思
- 再制造激光熔覆層與基體結(jié)合強(qiáng)度試驗(yàn)試樣制備方法
- 結(jié)構(gòu)物聚硫密封膠施工方案
評(píng)論
0/150
提交評(píng)論