版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
信號(hào)量與PV操作的概念主要內(nèi)容一、同步與同步機(jī)制二、信號(hào)量與PV操作一、同步與同步機(jī)制典型的進(jìn)程同步問題:生產(chǎn)者-消費(fèi)者問題生產(chǎn)者進(jìn)程消費(fèi)者進(jìn)程向其它進(jìn)程輸出或者發(fā)送數(shù)據(jù)的進(jìn)程從其它進(jìn)程接收數(shù)據(jù)的進(jìn)程生產(chǎn)者-消費(fèi)者問題描述數(shù)據(jù)結(jié)構(gòu)操作有一環(huán)形緩沖池,包含n個(gè)緩沖區(qū)(0~n-1)。有兩類進(jìn)程:m個(gè)生產(chǎn)者進(jìn)程和n個(gè)消費(fèi)者進(jìn)程,生產(chǎn)者進(jìn)程按照編號(hào)順序向空的緩沖區(qū)中投放產(chǎn)品,消費(fèi)者進(jìn)程按照投放順序從滿的緩沖區(qū)中取走產(chǎn)品。要求采用算法描述生產(chǎn)者進(jìn)程、消費(fèi)者進(jìn)程通過緩沖池交互的行為。生產(chǎn)者1消費(fèi)者1生產(chǎn)者2消費(fèi)者2生產(chǎn)者3消費(fèi)者3產(chǎn)品1產(chǎn)品1產(chǎn)品2產(chǎn)品2intk; //緩沖池中緩沖區(qū)個(gè)數(shù)typedefanyitemitem; //產(chǎn)品類型itembuffer[k]; //緩沖池intin=0,out=0,counter=0; //讀寫指針和滿緩沖區(qū)個(gè)數(shù)processproducer(void)
//生產(chǎn)者進(jìn)程{
while(true)
{
//無限循環(huán)
{produceaniteminnextp}; //生產(chǎn)一個(gè)產(chǎn)品
if(counter==k)sleep(producer); //緩沖滿時(shí),生產(chǎn)者睡眠
buffer[in]=nextp; //將一個(gè)產(chǎn)品放入緩沖區(qū)
in=(in+1)%k; //指針推進(jìn)
counter++; //緩沖內(nèi)產(chǎn)品數(shù)加1
if(counter==1)wakeup(consumer); //緩沖池非空后喚醒消費(fèi)者
}}未考慮進(jìn)程互斥的生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程交互算法processconsumer(void) //消費(fèi)者進(jìn)程{while(true){//無限循環(huán)
if(counter==0)sleep(consumer);//緩沖區(qū)空,消費(fèi)者睡眠
nextc=buffer[out]; //取一個(gè)產(chǎn)品到nextc
out=(out+1)%k; //指針推進(jìn)
counter--; //取走一個(gè)產(chǎn)品,計(jì)數(shù)減1
if(counter==k-1)wakeup(producer);//緩沖不滿,喚醒生產(chǎn)者
{consumetheiteminnextc}; //消耗產(chǎn)品
}}進(jìn)程對(duì)緩沖池的競(jìng)爭(zhēng)關(guān)系生產(chǎn)者與生產(chǎn)者生產(chǎn)者與消費(fèi)者消費(fèi)者與消費(fèi)者進(jìn)程并發(fā)執(zhí)行時(shí)可能出現(xiàn)的錯(cuò)誤多個(gè)生產(chǎn)者將多個(gè)產(chǎn)品放入同一個(gè)緩沖區(qū)中生產(chǎn)者無法正常喚醒消費(fèi)者,導(dǎo)致緩沖區(qū)滿,所有進(jìn)程睡眠多個(gè)消費(fèi)者從同一個(gè)滿緩沖區(qū)中取產(chǎn)品結(jié)果不唯一永遠(yuǎn)等待同步機(jī)制信號(hào)量與PV操作消息傳遞管程進(jìn)程并發(fā)錯(cuò)誤的解決方法利用進(jìn)程同步機(jī)制控制進(jìn)程的相對(duì)速率二、信號(hào)量與PV操作(1)對(duì)不能進(jìn)入臨界區(qū)的進(jìn)程,采用忙式等待測(cè)試法,浪費(fèi)CPU時(shí)間。(2)將測(cè)試能否進(jìn)入臨界區(qū)的責(zé)任推給各個(gè)競(jìng)爭(zhēng)的進(jìn)程會(huì)削弱系統(tǒng)的可靠性,加重用戶編程負(fù)擔(dān)。1、臨界區(qū)調(diào)度嘗試算法中存在的問題1965年荷蘭計(jì)算機(jī)科學(xué)家E.W.Dijkstra提出新的同步工具
信號(hào)量和P、V操作。他將交通管制中使用多種顏色信號(hào)燈管理交通的方法引入操作系統(tǒng)2、信號(hào)量同步機(jī)制的提出操作系統(tǒng)中信號(hào)量的物理意義在操作系統(tǒng)中,信號(hào)量是表示共享資源的數(shù)據(jù)結(jié)構(gòu),記錄可用共享資源的數(shù)量,維護(hù)等待使用共享資源的阻塞進(jìn)程隊(duì)列。信號(hào)量實(shí)現(xiàn)為記錄型數(shù)據(jù)結(jié)構(gòu),包含兩個(gè)分量:一個(gè)是信號(hào)量的值,另一個(gè)是信號(hào)量隊(duì)列的隊(duì)列指針信號(hào)量的實(shí)現(xiàn)結(jié)構(gòu)信號(hào)量的值(-3)信號(hào)量隊(duì)列指針等待進(jìn)程1等待進(jìn)程2等待進(jìn)程3Dijkstra發(fā)明了兩個(gè)信號(hào)量操作原語P操作原語V操作原語waitsignalupdownsleepwakeup其他符號(hào)其他符號(hào)信號(hào)量和P、V操作的功能解決并發(fā)進(jìn)程的競(jìng)爭(zhēng)互斥問題解決并發(fā)進(jìn)程的協(xié)作同步問題3、信號(hào)量的分類按用途公用信號(hào)量私有信號(hào)量初值常常為1(或者允許的某個(gè)最大值),用來實(shí)現(xiàn)進(jìn)程間的互斥。同一進(jìn)程可對(duì)其執(zhí)行P、V操作。初值常常為可用資源數(shù),多用來實(shí)現(xiàn)進(jìn)程同步。擁有該信號(hào)量的一類進(jìn)程可以對(duì)其執(zhí)行P操作,而另一類進(jìn)程可以對(duì)其執(zhí)行V操作。將信號(hào)量s加1,若結(jié)果不大于0,則釋放一個(gè)等待信號(hào)量s的進(jìn)程。4、一般信號(hào)量的結(jié)構(gòu)和操作描述P和V操作原語定義將信號(hào)量s減去1,若結(jié)果小于0,則調(diào)用P(s)的進(jìn)程被置成等待信號(hào)量s的狀態(tài)。設(shè)s為一個(gè)記錄型數(shù)據(jù)結(jié)構(gòu)一個(gè)分量為整型量value另一個(gè)為信號(hào)量隊(duì)列queueP(s)V(s)typedefstructsemaphore{intvalue; //信號(hào)量值
structpcb*list;//信號(hào)量隊(duì)列指針}semaphore;信號(hào)量和P、V操作描述信號(hào)量的數(shù)據(jù)結(jié)構(gòu)voidP(semaphore&s){
s.value--;
if(s.value<0)W(s.list);//將P操作調(diào)用者進(jìn)程置為阻塞狀態(tài)并移入s信號(hào)量隊(duì)列,轉(zhuǎn)進(jìn)程調(diào)度}P操作voidV(semaphore&s){
s.value++;
if(s.value<=0)R(s.list);//從信號(hào)量s隊(duì)列中釋放一個(gè)等待信號(hào)量s的進(jìn)程并轉(zhuǎn)換成就緒態(tài),自己則繼續(xù)執(zhí)行}V操作變量說明P(s)和V(s)中的s為兩個(gè)過程的共享變量。s的初值根據(jù)其用途設(shè)置。P、V操作含義P操作意味著請(qǐng)求一個(gè)資源V操作意味著釋放一個(gè)資源W(s.list)和R(s.list)是操作系統(tǒng)的基本系統(tǒng)調(diào)用。
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)力作用知識(shí)點(diǎn)課件
- 影樓元旦活動(dòng)方案策劃(3篇)
- 牛奶刨冰活動(dòng)方案策劃(3篇)
- 甲方廠區(qū)物業(yè)管理制度(3篇)
- 質(zhì)量管理制度與執(zhí)行(3篇)
- 鉗工班組工具管理制度(3篇)
- 《GA 1052.5-2013警用帳篷 第5部分:60m2單帳篷》專題研究報(bào)告深度
- 《GA 674-2007警用服飾 絲織胸徽》專題研究報(bào)告
- 2026年及未來5年市場(chǎng)數(shù)據(jù)中國消費(fèi)品檢測(cè)行業(yè)市場(chǎng)深度分析及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2026年及未來5年市場(chǎng)數(shù)據(jù)中國智慧商城建設(shè)行業(yè)市場(chǎng)競(jìng)爭(zhēng)格局及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 郵政服務(wù)操作流程與規(guī)范(標(biāo)準(zhǔn)版)
- 2026昆山鈔票紙業(yè)有限公司校園招聘15人備考題庫及1套完整答案詳解
- 2026年重慶市江津區(qū)社區(qū)專職人員招聘(642人)考試參考題庫及答案解析
- 2026年1月福建廈門市集美區(qū)后溪鎮(zhèn)衛(wèi)生院補(bǔ)充編外人員招聘16人筆試模擬試題及答案解析
- 2026年長治職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫附答案解析
- 新華資產(chǎn)招聘筆試題庫2026
- 變配電室送電施工方案
- 地質(zhì)勘查現(xiàn)場(chǎng)安全風(fēng)險(xiǎn)管控清單
- 松下panasonic-經(jīng)銷商傳感器培訓(xùn)
- 建設(shè)工程項(xiàng)目施工風(fēng)險(xiǎn)管理課件
- 口腔門診行政人事制度
評(píng)論
0/150
提交評(píng)論