版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三章第三章 處理機(jī)調(diào)度與死鎖處理機(jī)調(diào)度與死鎖第一節(jié)第一節(jié)處理機(jī)調(diào)度的層次處理機(jī)調(diào)度的層次第二節(jié)第二節(jié)調(diào)度隊(duì)列模型和調(diào)度準(zhǔn)則調(diào)度隊(duì)列模型和調(diào)度準(zhǔn)則第三節(jié)第三節(jié) 調(diào)度算法調(diào)度算法第四節(jié)第四節(jié) 實(shí)時(shí)調(diào)度實(shí)時(shí)調(diào)度第五節(jié)第五節(jié)產(chǎn)生死鎖的原因和必要條件產(chǎn)生死鎖的原因和必要條件第六節(jié)第六節(jié) 預(yù)防死鎖的方法預(yù)防死鎖的方法第七節(jié)第七節(jié) 死鎖的檢測(cè)和解除死鎖的檢測(cè)和解除3.1處理機(jī)調(diào)度的層次處理機(jī)調(diào)度的層次高級(jí)調(diào)度高級(jí)調(diào)度低級(jí)調(diào)度低級(jí)調(diào)度中級(jí)調(diào)度中級(jí)調(diào)度3.1.1、高級(jí)調(diào)度、高級(jí)調(diào)度高級(jí)調(diào)度高級(jí)調(diào)度(作業(yè)調(diào)度(作業(yè)調(diào)度/長(zhǎng)程調(diào)度)長(zhǎng)程調(diào)度)l決定把外存上處于后備隊(duì)列中的哪些作業(yè)調(diào)入內(nèi)決定把外存上處于后備隊(duì)列中的
2、哪些作業(yè)調(diào)入內(nèi)存。存。l調(diào)度對(duì)象:作業(yè)調(diào)度對(duì)象:作業(yè)1、作業(yè)和作業(yè)步、作業(yè)和作業(yè)步l作業(yè):程序 + 數(shù)據(jù) + 作業(yè)說明書l作業(yè)步:作業(yè)運(yùn)行期間的每個(gè)加工步驟例如:編譯例如:編譯連結(jié)裝配連結(jié)裝配運(yùn)行運(yùn)行2、作業(yè)控制塊、作業(yè)控制塊 ( JCB )lJCB:保存了系統(tǒng)對(duì)作業(yè)進(jìn)行管理和調(diào)度所需的保存了系統(tǒng)對(duì)作業(yè)進(jìn)行管理和調(diào)度所需的全部信息。作業(yè)在系統(tǒng)中存在的全部信息。作業(yè)在系統(tǒng)中存在的標(biāo)志標(biāo)志。lJCB包含的內(nèi)容有:包含的內(nèi)容有:作業(yè)標(biāo)識(shí)、用戶名稱、用戶作業(yè)標(biāo)識(shí)、用戶名稱、用戶賬號(hào)、作業(yè)類型、作業(yè)狀態(tài)、調(diào)度信息、資源需賬號(hào)、作業(yè)類型、作業(yè)狀態(tài)、調(diào)度信息、資源需求、時(shí)間信息、資源使用情況等。求、時(shí)間信息
3、、資源使用情況等。lJCB的創(chuàng)建和回收的創(chuàng)建和回收3、高級(jí)調(diào)度(作業(yè)、高級(jí)調(diào)度(作業(yè)/長(zhǎng)程長(zhǎng)程/接納調(diào)度)接納調(diào)度)l概念:概念:決定把外存上處于后備隊(duì)列中的哪些作業(yè)決定把外存上處于后備隊(duì)列中的哪些作業(yè)調(diào)入內(nèi)存,并為它們創(chuàng)建進(jìn)程、分配必要的資源,調(diào)入內(nèi)存,并為它們創(chuàng)建進(jìn)程、分配必要的資源,準(zhǔn)備執(zhí)行。準(zhǔn)備執(zhí)行。l多用于批處理系統(tǒng)多用于批處理系統(tǒng)l每次調(diào)度時(shí)要考慮:每次調(diào)度時(shí)要考慮:l(1)接納多少作業(yè):取決于多道程序度接納多少作業(yè):取決于多道程序度l(2)接納哪些作業(yè):取決于調(diào)度算法接納哪些作業(yè):取決于調(diào)度算法l作業(yè)調(diào)度運(yùn)行頻率低,幾分鐘一次作業(yè)調(diào)度運(yùn)行頻率低,幾分鐘一次系統(tǒng)規(guī)模系統(tǒng)規(guī)模運(yùn)行速度
4、運(yùn)行速度低級(jí)調(diào)度低級(jí)調(diào)度(進(jìn)程(進(jìn)程 / 短程調(diào)度)短程調(diào)度)l決定就緒隊(duì)列中的哪個(gè)進(jìn)程應(yīng)獲得處理機(jī),然后再?zèng)Q定就緒隊(duì)列中的哪個(gè)進(jìn)程應(yīng)獲得處理機(jī),然后再由分派程序執(zhí)行把處理機(jī)分配給該進(jìn)程的具體操作由分派程序執(zhí)行把處理機(jī)分配給該進(jìn)程的具體操作是是最基本最基本的調(diào)度,在三種類型的的調(diào)度,在三種類型的OS中都必須配置中都必須配置3.1.2、低級(jí)調(diào)度、低級(jí)調(diào)度1、低級(jí)調(diào)度的功能、低級(jí)調(diào)度的功能l保存處理機(jī)的現(xiàn)場(chǎng)信息保存處理機(jī)的現(xiàn)場(chǎng)信息l按照某種算法選取進(jìn)程按照某種算法選取進(jìn)程l把處理機(jī)分配給進(jìn)程把處理機(jī)分配給進(jìn)程2、進(jìn)程調(diào)度中的三個(gè)基本機(jī)制、進(jìn)程調(diào)度中的三個(gè)基本機(jī)制l排隊(duì)器排隊(duì)器l分派器(分派程序)分
5、派器(分派程序)l上下文切換機(jī)制上下文切換機(jī)制3、進(jìn)程調(diào)度方式、進(jìn)程調(diào)度方式l非搶占方式非搶占方式l搶占方式搶占方式1)非搶占方式:)非搶占方式:l一旦進(jìn)程獲得處理機(jī),則一直執(zhí)行,直到該進(jìn)程完一旦進(jìn)程獲得處理機(jī),則一直執(zhí)行,直到該進(jìn)程完成或被阻塞成或被阻塞l此方式下,可能此方式下,可能引起進(jìn)程調(diào)度的因素引起進(jìn)程調(diào)度的因素:(1)正在執(zhí)行的進(jìn)程執(zhí)行完畢,或因發(fā)生某事件不)正在執(zhí)行的進(jìn)程執(zhí)行完畢,或因發(fā)生某事件不能再繼續(xù)執(zhí)行能再繼續(xù)執(zhí)行(2)執(zhí)行中的進(jìn)程因提出)執(zhí)行中的進(jìn)程因提出I/O請(qǐng)求而暫停執(zhí)行請(qǐng)求而暫停執(zhí)行(3)在進(jìn)程通信或同步過程中執(zhí)行了某原語,)在進(jìn)程通信或同步過程中執(zhí)行了某原語,P操操
6、作等作等l優(yōu)點(diǎn):優(yōu)點(diǎn):簡(jiǎn)單、系統(tǒng)開銷小,適合大多數(shù)批處理系統(tǒng)簡(jiǎn)單、系統(tǒng)開銷小,適合大多數(shù)批處理系統(tǒng)l缺點(diǎn):缺點(diǎn):無法滿足緊急任務(wù)的需要,不適合實(shí)時(shí)系統(tǒng)無法滿足緊急任務(wù)的需要,不適合實(shí)時(shí)系統(tǒng)2)搶占方式:)搶占方式:l允許調(diào)度程序根據(jù)某原則,暫停正在執(zhí)行的進(jìn)程,允許調(diào)度程序根據(jù)某原則,暫停正在執(zhí)行的進(jìn)程,將處理機(jī)重新分配將處理機(jī)重新分配搶占原則:搶占原則:l優(yōu)先權(quán)原則優(yōu)先權(quán)原則 就緒的高優(yōu)先權(quán)進(jìn)程有權(quán)搶占低優(yōu)先權(quán)進(jìn)程的就緒的高優(yōu)先權(quán)進(jìn)程有權(quán)搶占低優(yōu)先權(quán)進(jìn)程的CPUl短作業(yè)優(yōu)先原則短作業(yè)優(yōu)先原則 就緒的短作業(yè)就緒的短作業(yè)(進(jìn)程進(jìn)程)有權(quán)搶占長(zhǎng)作業(yè)有權(quán)搶占長(zhǎng)作業(yè)(進(jìn)程進(jìn)程)的的CPUl時(shí)間片原則時(shí)間
7、片原則 一個(gè)時(shí)間片用完后,系統(tǒng)重新進(jìn)行進(jìn)程調(diào)度一個(gè)時(shí)間片用完后,系統(tǒng)重新進(jìn)行進(jìn)程調(diào)度中級(jí)調(diào)度(中程調(diào)度)中級(jí)調(diào)度(中程調(diào)度)l目的:目的:提高內(nèi)存利用率和系統(tǒng)吞吐量提高內(nèi)存利用率和系統(tǒng)吞吐量l按一定的算法將外存上已具備運(yùn)行條件的掛起進(jìn)按一定的算法將外存上已具備運(yùn)行條件的掛起進(jìn)程換入內(nèi)存,掛到就緒隊(duì)列上,準(zhǔn)備執(zhí)行;而將程換入內(nèi)存,掛到就緒隊(duì)列上,準(zhǔn)備執(zhí)行;而將內(nèi)存中處于阻塞狀態(tài)的某些進(jìn)程換出至外存。內(nèi)存中處于阻塞狀態(tài)的某些進(jìn)程換出至外存。3.1.3、中級(jí)調(diào)度、中級(jí)調(diào)度調(diào)度隊(duì)列模型調(diào)度隊(duì)列模型選擇調(diào)度方式和調(diào)度算法的若干準(zhǔn)則選擇調(diào)度方式和調(diào)度算法的若干準(zhǔn)則3.2、調(diào)度隊(duì)列模型、調(diào)度隊(duì)列模型3.2.
8、1、調(diào)度隊(duì)列模型、調(diào)度隊(duì)列模型僅具有進(jìn)程調(diào)度的調(diào)度隊(duì)列模型僅具有進(jìn)程調(diào)度的調(diào)度隊(duì)列模型就就緒緒隊(duì)隊(duì)列列阻阻塞塞隊(duì)隊(duì)列列CPU時(shí)間片完時(shí)間片完交互用戶交互用戶進(jìn)程調(diào)度進(jìn)程調(diào)度進(jìn)程完成進(jìn)程完成等待事件等待事件事件發(fā)生事件發(fā)生具有高、低兩級(jí)調(diào)度的調(diào)度隊(duì)列模型具有高、低兩級(jí)調(diào)度的調(diào)度隊(duì)列模型就就緒緒隊(duì)隊(duì)列列阻阻塞塞隊(duì)隊(duì)列列CPU時(shí)間片完時(shí)間片完作業(yè)作業(yè)調(diào)度調(diào)度進(jìn)程調(diào)度進(jìn)程調(diào)度進(jìn)程完成進(jìn)程完成等待事件等待事件1阻阻塞塞隊(duì)隊(duì)列列阻阻塞塞隊(duì)隊(duì)列列等待事件等待事件2等待事件等待事件n事件事件1發(fā)生發(fā)生事件事件2發(fā)生發(fā)生事件事件n發(fā)生發(fā)生后后備備隊(duì)隊(duì)列列具有高、低、中三級(jí)調(diào)度的調(diào)度隊(duì)列模型具有高、低、中三級(jí)調(diào)度
9、的調(diào)度隊(duì)列模型就就 緒緒 隊(duì)隊(duì) 列列緒緒就就、 掛掛 起起 隊(duì)隊(duì) 列列CPU時(shí)間片完時(shí)間片完作業(yè)作業(yè)調(diào)度調(diào)度進(jìn)程調(diào)度進(jìn)程調(diào)度進(jìn)程完成進(jìn)程完成事件出現(xiàn)事件出現(xiàn)阻阻 塞塞 隊(duì)隊(duì) 列列掛起掛起等待事件等待事件中級(jí)中級(jí)調(diào)度調(diào)度事件發(fā)生事件發(fā)生后后 備備 隊(duì)隊(duì) 列列塞塞阻阻、 掛掛 起起 隊(duì)隊(duì) 列列掛起掛起3.2.2、選擇調(diào)度方式和算法的選擇準(zhǔn)則、選擇調(diào)度方式和算法的選擇準(zhǔn)則1、面向用戶的準(zhǔn)則、面向用戶的準(zhǔn)則l(1)周轉(zhuǎn)時(shí)間短)周轉(zhuǎn)時(shí)間短評(píng)價(jià)批處理系統(tǒng)評(píng)價(jià)批處理系統(tǒng) 周轉(zhuǎn)時(shí)間:周轉(zhuǎn)時(shí)間:是指從作業(yè)被提交系統(tǒng)開始,到作業(yè)是指從作業(yè)被提交系統(tǒng)開始,到作業(yè)完成為止的這段時(shí)間間隔。完成為止的這段時(shí)間間隔。 包括
10、四部分時(shí)間:包括四部分時(shí)間:1)等待作業(yè)調(diào)度時(shí)間)等待作業(yè)調(diào)度時(shí)間2)等待進(jìn)程調(diào)度時(shí)間)等待進(jìn)程調(diào)度時(shí)間3)執(zhí)行時(shí)間)執(zhí)行時(shí)間4)進(jìn)程等待)進(jìn)程等待I/O操作完成時(shí)間操作完成時(shí)間平均周轉(zhuǎn)時(shí)間:平均周轉(zhuǎn)時(shí)間:niTinT11帶權(quán)周轉(zhuǎn)時(shí)間:帶權(quán)周轉(zhuǎn)時(shí)間:TsTW 周轉(zhuǎn)時(shí)間周轉(zhuǎn)時(shí)間服務(wù)時(shí)間服務(wù)時(shí)間niTsTinW11平均帶權(quán)周轉(zhuǎn)時(shí)間:平均帶權(quán)周轉(zhuǎn)時(shí)間:(2)響應(yīng)時(shí)間快)響應(yīng)時(shí)間快評(píng)價(jià)分時(shí)系統(tǒng)評(píng)價(jià)分時(shí)系統(tǒng)響應(yīng)時(shí)間:響應(yīng)時(shí)間:從用戶通過鍵盤提交一個(gè)請(qǐng)求開始直從用戶通過鍵盤提交一個(gè)請(qǐng)求開始直至系統(tǒng)首次產(chǎn)生響應(yīng)為止。至系統(tǒng)首次產(chǎn)生響應(yīng)為止。 包括三部分時(shí)間:包括三部分時(shí)間:1)從鍵盤輸入的請(qǐng)求信息傳送到處理
11、機(jī)的時(shí)間)從鍵盤輸入的請(qǐng)求信息傳送到處理機(jī)的時(shí)間2)處理時(shí)間)處理時(shí)間3)響應(yīng)信息回送終端的時(shí)間)響應(yīng)信息回送終端的時(shí)間(3)截止時(shí)間保證)截止時(shí)間保證評(píng)價(jià)實(shí)時(shí)系統(tǒng)評(píng)價(jià)實(shí)時(shí)系統(tǒng)截止時(shí)間:截止時(shí)間:任務(wù)必須開始執(zhí)行的最遲時(shí)間,任務(wù)必須開始執(zhí)行的最遲時(shí)間,或必須完成的最遲時(shí)間?;虮仨毻瓿傻淖钸t時(shí)間。(4)優(yōu)先權(quán)準(zhǔn)則)優(yōu)先權(quán)準(zhǔn)則三種系統(tǒng)中皆適用三種系統(tǒng)中皆適用2、面向系統(tǒng)的準(zhǔn)則、面向系統(tǒng)的準(zhǔn)則l系統(tǒng)吞吐量高系統(tǒng)吞吐量高評(píng)價(jià)批處理系統(tǒng)評(píng)價(jià)批處理系統(tǒng)l處理機(jī)利用率好處理機(jī)利用率好針對(duì)大中型系統(tǒng)針對(duì)大中型系統(tǒng)l各類資源的平衡利用各類資源的平衡利用對(duì)大中型系統(tǒng)對(duì)大中型系統(tǒng)3.3調(diào)度算法調(diào)度算法先來先服務(wù)和短
12、作業(yè)(進(jìn)程)優(yōu)先調(diào)度先來先服務(wù)和短作業(yè)(進(jìn)程)優(yōu)先調(diào)度算法算法高優(yōu)先權(quán)先調(diào)度算法高優(yōu)先權(quán)先調(diào)度算法基于時(shí)間片的輪轉(zhuǎn)調(diào)度算法基于時(shí)間片的輪轉(zhuǎn)調(diào)度算法3.2.1、先來先服務(wù)和短作業(yè)(進(jìn)程)優(yōu)先先來先服務(wù)和短作業(yè)(進(jìn)程)優(yōu)先調(diào)度算法調(diào)度算法1、先來先服務(wù)(、先來先服務(wù)(FCFS)調(diào)度算法)調(diào)度算法可用于作業(yè)調(diào)度和進(jìn)程調(diào)度可用于作業(yè)調(diào)度和進(jìn)程調(diào)度用于作業(yè)調(diào)度:用于作業(yè)調(diào)度:l每次從后備作業(yè)隊(duì)列中選擇最先進(jìn)入的作業(yè),將每次從后備作業(yè)隊(duì)列中選擇最先進(jìn)入的作業(yè),將它們調(diào)入內(nèi)存,為它們分配資源、創(chuàng)建進(jìn)程,然它們調(diào)入內(nèi)存,為它們分配資源、創(chuàng)建進(jìn)程,然后掛到就緒進(jìn)程隊(duì)列上。后掛到就緒進(jìn)程隊(duì)列上。用于進(jìn)程調(diào)度:用于
13、進(jìn)程調(diào)度:l每次從就緒進(jìn)程隊(duì)列中選擇最先進(jìn)入的進(jìn)程,為每次從就緒進(jìn)程隊(duì)列中選擇最先進(jìn)入的進(jìn)程,為之分配處理機(jī),使之投入運(yùn)行。之分配處理機(jī),使之投入運(yùn)行。l直到運(yùn)行完成進(jìn)程才會(huì)讓出處理機(jī)直到運(yùn)行完成進(jìn)程才會(huì)讓出處理機(jī)-非搶占式。非搶占式。l有利于長(zhǎng)作業(yè),而不利于短作業(yè)。有利于長(zhǎng)作業(yè),而不利于短作業(yè)。進(jìn)程進(jìn)程名名到達(dá)到達(dá)時(shí)間時(shí)間服務(wù)服務(wù)時(shí)間時(shí)間開始執(zhí)開始執(zhí)行時(shí)間行時(shí)間完成完成時(shí)間時(shí)間周轉(zhuǎn)周轉(zhuǎn)時(shí)間時(shí)間帶權(quán)周帶權(quán)周轉(zhuǎn)時(shí)間轉(zhuǎn)時(shí)間A010111B110011011001C21101102100100D31001022021991.99性能評(píng)價(jià):性能評(píng)價(jià):l周轉(zhuǎn)時(shí)間周轉(zhuǎn)時(shí)間 = 完成時(shí)間完成時(shí)間 到達(dá)時(shí)間到
14、達(dá)時(shí)間l帶權(quán)周轉(zhuǎn)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間 = 周轉(zhuǎn)時(shí)間周轉(zhuǎn)時(shí)間 / 服務(wù)(運(yùn)行)時(shí)間服務(wù)(運(yùn)行)時(shí)間2、短作業(yè)、短作業(yè)/進(jìn)程優(yōu)先(進(jìn)程優(yōu)先(SJF/SPF)短作業(yè)優(yōu)先(短作業(yè)優(yōu)先(SJF)l從后備隊(duì)列中選擇估計(jì)運(yùn)行時(shí)間最短的作業(yè),調(diào)從后備隊(duì)列中選擇估計(jì)運(yùn)行時(shí)間最短的作業(yè),調(diào)入內(nèi)存運(yùn)行。入內(nèi)存運(yùn)行。短進(jìn)程優(yōu)先(短進(jìn)程優(yōu)先(SPF)l從就緒隊(duì)列中選出估計(jì)運(yùn)行時(shí)間最短的進(jìn)程,將從就緒隊(duì)列中選出估計(jì)運(yùn)行時(shí)間最短的進(jìn)程,將處理機(jī)分配給它,使它立即執(zhí)行。處理機(jī)分配給它,使它立即執(zhí)行。l直到運(yùn)行完成進(jìn)程才會(huì)讓出處理機(jī)直到運(yùn)行完成進(jìn)程才會(huì)讓出處理機(jī)-非搶占式。非搶占式。缺點(diǎn):缺點(diǎn):l對(duì)長(zhǎng)作業(yè)不利,有可能長(zhǎng)期不被調(diào)度;
15、對(duì)長(zhǎng)作業(yè)不利,有可能長(zhǎng)期不被調(diào)度;l完全沒考慮作業(yè)的緊迫程度(某些特殊的);完全沒考慮作業(yè)的緊迫程度(某些特殊的);l用戶做出的估計(jì)時(shí)間帶有很大的主觀性。用戶做出的估計(jì)時(shí)間帶有很大的主觀性。2.259133.5141844E3.116182101252C2.678926731B1.5365.5111423D2.11帶權(quán)周轉(zhuǎn)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間84周轉(zhuǎn)時(shí)間周轉(zhuǎn)時(shí)間4完成時(shí)間完成時(shí)間FJS2.81帶權(quán)周轉(zhuǎn)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間94周轉(zhuǎn)時(shí)間周轉(zhuǎn)時(shí)間4完成時(shí)間完成時(shí)間FCFS4服務(wù)時(shí)間服務(wù)時(shí)間0到達(dá)時(shí)間到達(dá)時(shí)間平均平均A進(jìn)程名進(jìn)程名 作作調(diào)調(diào)業(yè)業(yè)度度情情算算況況法法l周轉(zhuǎn)時(shí)間周轉(zhuǎn)時(shí)間 = 完成時(shí)間完成時(shí)間 到達(dá)
16、時(shí)間到達(dá)時(shí)間l帶權(quán)周轉(zhuǎn)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間 = 周轉(zhuǎn)時(shí)間周轉(zhuǎn)時(shí)間 / 服務(wù)時(shí)間服務(wù)時(shí)間3.3.2、高優(yōu)先權(quán)先調(diào)度算法、高優(yōu)先權(quán)先調(diào)度算法既能用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。既能用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。作業(yè)調(diào)度:從后備隊(duì)列中選擇若干個(gè)優(yōu)先權(quán)最高的作業(yè)調(diào)度:從后備隊(duì)列中選擇若干個(gè)優(yōu)先權(quán)最高的作業(yè)裝入內(nèi)存。作業(yè)裝入內(nèi)存。進(jìn)程調(diào)度:把處理機(jī)分配給就緒隊(duì)列中優(yōu)先權(quán)最高進(jìn)程調(diào)度:把處理機(jī)分配給就緒隊(duì)列中優(yōu)先權(quán)最高的進(jìn)程的進(jìn)程兩種占用兩種占用CPU的方式:非搶占式優(yōu)先權(quán)算法的方式:非搶占式優(yōu)先權(quán)算法搶占式優(yōu)先權(quán)算法搶占式優(yōu)先權(quán)算法1、優(yōu)先權(quán)調(diào)度算法的類型、優(yōu)先權(quán)調(diào)度算法的類型非搶占式優(yōu)先權(quán)算法非搶占式優(yōu)
17、先權(quán)算法l系統(tǒng)一旦把處理機(jī)分配給就緒隊(duì)列中優(yōu)先權(quán)最高系統(tǒng)一旦把處理機(jī)分配給就緒隊(duì)列中優(yōu)先權(quán)最高的進(jìn)程后,該進(jìn)程就一直執(zhí)行下去,直至完成;的進(jìn)程后,該進(jìn)程就一直執(zhí)行下去,直至完成;或因發(fā)生某事件使該進(jìn)程放棄處理機(jī)時(shí),系統(tǒng)方或因發(fā)生某事件使該進(jìn)程放棄處理機(jī)時(shí),系統(tǒng)方可再將處理機(jī)重新分配給另一優(yōu)先權(quán)最高的進(jìn)程??稍賹⑻幚頇C(jī)重新分配給另一優(yōu)先權(quán)最高的進(jìn)程。l主要用于批處理系統(tǒng)主要用于批處理系統(tǒng)搶占式優(yōu)先權(quán)算法搶占式優(yōu)先權(quán)算法l新的就緒進(jìn)程新的就緒進(jìn)程i,優(yōu)先權(quán),優(yōu)先權(quán)Pi。正在執(zhí)行的進(jìn)程。正在執(zhí)行的進(jìn)程j,優(yōu),優(yōu)先權(quán)先權(quán)Pj。若。若PiPj,做進(jìn)程切換。新進(jìn)程做進(jìn)程切換。新進(jìn)程i執(zhí)行。執(zhí)行。l優(yōu)點(diǎn):優(yōu)
18、點(diǎn):能更好的滿足緊迫作業(yè)的要求。主要用于能更好的滿足緊迫作業(yè)的要求。主要用于比較嚴(yán)格的實(shí)時(shí)系統(tǒng)。比較嚴(yán)格的實(shí)時(shí)系統(tǒng)。2、優(yōu)先權(quán)的類型、優(yōu)先權(quán)的類型 1)靜態(tài)優(yōu)先權(quán))靜態(tài)優(yōu)先權(quán) 在進(jìn)程創(chuàng)建時(shí)確定的,在進(jìn)程整個(gè)運(yùn)行期間保持不變?cè)谶M(jìn)程創(chuàng)建時(shí)確定的,在進(jìn)程整個(gè)運(yùn)行期間保持不變優(yōu)先權(quán)優(yōu)先權(quán)利用某一范圍的利用某一范圍的整數(shù)整數(shù)來表示,該整數(shù)稱為優(yōu)來表示,該整數(shù)稱為優(yōu)先數(shù)。如:先數(shù)。如:07,0255確定優(yōu)先權(quán)的依據(jù):確定優(yōu)先權(quán)的依據(jù):(1)進(jìn)程類型)進(jìn)程類型(2)進(jìn)程對(duì)資源的需求)進(jìn)程對(duì)資源的需求(3)用戶要求)用戶要求注:規(guī)定優(yōu)先數(shù)越小,其優(yōu)先權(quán)越高注:規(guī)定優(yōu)先數(shù)越小,其優(yōu)先權(quán)越高4/348334C15
19、/81517482B119118D帶權(quán)周轉(zhuǎn)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間周轉(zhuǎn)時(shí)間周轉(zhuǎn)時(shí)間155完成時(shí)間完成時(shí)間2優(yōu)先權(quán)優(yōu)先權(quán)非搶占式優(yōu)非搶占式優(yōu)先權(quán)算法先權(quán)算法5服務(wù)時(shí)間服務(wù)時(shí)間0到達(dá)時(shí)間到達(dá)時(shí)間A進(jìn)程名進(jìn)程名 作作調(diào)調(diào)業(yè)業(yè)度度情情算算況況法法平均平均6.251.3例:非搶占式優(yōu)先權(quán)算法例:非搶占式優(yōu)先權(quán)算法t(等待等待)優(yōu)先權(quán)優(yōu)先權(quán)t(運(yùn)行運(yùn)行)優(yōu)先權(quán)優(yōu)先權(quán)l(xiāng)2)動(dòng)態(tài)優(yōu)先權(quán)動(dòng)態(tài)優(yōu)先權(quán)在進(jìn)程創(chuàng)建時(shí)創(chuàng)立的優(yōu)先權(quán),可隨進(jìn)程的推進(jìn)或等待在進(jìn)程創(chuàng)建時(shí)創(chuàng)立的優(yōu)先權(quán),可隨進(jìn)程的推進(jìn)或等待時(shí)間的增加而改變。如等待時(shí)間長(zhǎng),優(yōu)先權(quán)升高。時(shí)間的增加而改變。如等待時(shí)間長(zhǎng),優(yōu)先權(quán)升高。等待時(shí)間等待時(shí)間+要求服務(wù)時(shí)間要求服務(wù)時(shí)間優(yōu)先
20、權(quán)優(yōu)先權(quán)=-要求服務(wù)時(shí)間要求服務(wù)時(shí)間等待時(shí)間等待時(shí)間+要求服務(wù)時(shí)間要求服務(wù)時(shí)間響應(yīng)時(shí)間響應(yīng)時(shí)間響應(yīng)比響應(yīng)比(Rp)=-=-要求服務(wù)時(shí)間要求服務(wù)時(shí)間要求服務(wù)時(shí)間要求服務(wù)時(shí)間3、高響應(yīng)比優(yōu)先調(diào)度算法、高響應(yīng)比優(yōu)先調(diào)度算法(HRRN)l為每個(gè)進(jìn)程引入動(dòng)態(tài)優(yōu)先權(quán),隨著等待時(shí)間增為每個(gè)進(jìn)程引入動(dòng)態(tài)優(yōu)先權(quán),隨著等待時(shí)間增加優(yōu)先權(quán)提高。加優(yōu)先權(quán)提高。優(yōu)點(diǎn):優(yōu)點(diǎn):等待時(shí)間相同,短作業(yè)優(yōu)先權(quán)高等待時(shí)間相同,短作業(yè)優(yōu)先權(quán)高(即即SPF)要求服務(wù)時(shí)間相同,等待時(shí)間長(zhǎng),優(yōu)先權(quán)高要求服務(wù)時(shí)間相同,等待時(shí)間長(zhǎng),優(yōu)先權(quán)高(即即FCFS)對(duì)于長(zhǎng)作業(yè),在等待足夠時(shí)間后,可獲得處理機(jī)對(duì)于長(zhǎng)作業(yè),在等待足夠時(shí)間后,可獲得處理機(jī)3.
21、571528E2.2591344C1.177962B2.8142056D2.141帶權(quán)周轉(zhuǎn)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間83周轉(zhuǎn)時(shí)間周轉(zhuǎn)時(shí)間3完成時(shí)間完成時(shí)間3服務(wù)時(shí)間服務(wù)時(shí)間0到達(dá)時(shí)間到達(dá)時(shí)間平均平均A進(jìn)程名進(jìn)程名 作作調(diào)調(diào)業(yè)業(yè)度度情情算算況況法法RC1+(9-4)/4=2.25RD1+(9-6)/5=1.6RE1+(9-8)/2=1.5RD1+(13-6)/5=2.4RE1+(13-8)/2=3.5執(zhí)行順序:執(zhí)行順序:ABCEDHRRN(R大,大,優(yōu)先權(quán)高優(yōu)先權(quán)高)3.3.3、基于時(shí)間片的輪轉(zhuǎn)調(diào)度算法、基于時(shí)間片的輪轉(zhuǎn)調(diào)度算法1、時(shí)間片輪轉(zhuǎn)法、時(shí)間片輪轉(zhuǎn)法1)基本原理)基本原理系統(tǒng)將所有的就緒進(jìn)程按系統(tǒng)
22、將所有的就緒進(jìn)程按FIFO原則排成一個(gè)隊(duì)原則排成一個(gè)隊(duì)列,將列,將CPU分配給分配給隊(duì)首隊(duì)首進(jìn)程,執(zhí)行進(jìn)程,執(zhí)行一個(gè)時(shí)間片一個(gè)時(shí)間片。在時(shí)間片內(nèi)進(jìn)程未完,則插入在時(shí)間片內(nèi)進(jìn)程未完,則插入就緒隊(duì)列未尾就緒隊(duì)列未尾,CPU交給下一個(gè)進(jìn)程。交給下一個(gè)進(jìn)程。2)時(shí)間片大小的確定)時(shí)間片大小的確定時(shí)間片略大于一次典型的交互所需要的時(shí)間。時(shí)間片略大于一次典型的交互所需要的時(shí)間。3.3313173.33131744E2.259113.5141642C2673.67111231B5101336923D帶權(quán)周轉(zhuǎn)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間2.58.4周轉(zhuǎn)時(shí)間周轉(zhuǎn)時(shí)間144完成時(shí)間完成時(shí)間RRq=4帶權(quán)周轉(zhuǎn)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間3
23、.4611.8周轉(zhuǎn)時(shí)間周轉(zhuǎn)時(shí)間3.751515完成時(shí)間完成時(shí)間RRq=14服務(wù)時(shí)間服務(wù)時(shí)間0到達(dá)時(shí)間到達(dá)時(shí)間平均平均A進(jìn)程名進(jìn)程名 作作調(diào)調(diào)業(yè)業(yè)度度情情算算況況法法l周轉(zhuǎn)時(shí)間周轉(zhuǎn)時(shí)間 = 完成時(shí)間完成時(shí)間 到達(dá)時(shí)間到達(dá)時(shí)間l帶權(quán)周轉(zhuǎn)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間 = 周轉(zhuǎn)時(shí)間周轉(zhuǎn)時(shí)間 / 服務(wù)時(shí)間服務(wù)時(shí)間2、多級(jí)反饋隊(duì)列調(diào)度算法、多級(jí)反饋隊(duì)列調(diào)度算法 原理:原理:l設(shè)置多個(gè)就緒隊(duì)列設(shè)置多個(gè)就緒隊(duì)列,并為各個(gè)隊(duì)列賦予不同的優(yōu),并為各個(gè)隊(duì)列賦予不同的優(yōu)先級(jí)和不同長(zhǎng)度的時(shí)間片;先級(jí)和不同長(zhǎng)度的時(shí)間片;l新創(chuàng)建的進(jìn)程新創(chuàng)建的進(jìn)程掛到第一優(yōu)先級(jí)的隊(duì)列后,然后按掛到第一優(yōu)先級(jí)的隊(duì)列后,然后按 FCFS 原則排隊(duì)等待調(diào)度
24、。當(dāng)輪到其執(zhí)行時(shí),如原則排隊(duì)等待調(diào)度。當(dāng)輪到其執(zhí)行時(shí),如它能在時(shí)間片內(nèi)完成,便撤離系統(tǒng);如果不能完它能在時(shí)間片內(nèi)完成,便撤離系統(tǒng);如果不能完成,便被掛入第二級(jí)隊(duì)列后,成,便被掛入第二級(jí)隊(duì)列后,最后一級(jí)最后一級(jí)隊(duì)隊(duì)列采用列采用時(shí)間片輪轉(zhuǎn)法時(shí)間片輪轉(zhuǎn)法;l僅當(dāng)?shù)谝患?jí)隊(duì)列空閑時(shí)僅當(dāng)?shù)谝患?jí)隊(duì)列空閑時(shí),調(diào)度程序才調(diào)度第二級(jí),調(diào)度程序才調(diào)度第二級(jí)隊(duì)列中的進(jìn)程運(yùn)行,依次類推隊(duì)列中的進(jìn)程運(yùn)行,依次類推;新進(jìn)程可搶;新進(jìn)程可搶占低級(jí)進(jìn)程的處理機(jī)。占低級(jí)進(jìn)程的處理機(jī)。多級(jí)反饋隊(duì)列調(diào)度算法示意圖多級(jí)反饋隊(duì)列調(diào)度算法示意圖CPU時(shí)間時(shí)間片完片完進(jìn)程進(jìn)程調(diào)度調(diào)度進(jìn)程完成進(jìn)程完成就就緒緒隊(duì)隊(duì)列列一一就就緒緒隊(duì)隊(duì)列列二二就
25、就緒緒隊(duì)隊(duì)列列三三就就緒緒隊(duì)隊(duì)列列 n時(shí)間時(shí)間片完片完時(shí)間時(shí)間片完片完就就級(jí)級(jí)1緒緒 隊(duì)隊(duì) 列列空空就就級(jí)級(jí)2緒緒 隊(duì)隊(duì) 列列就就級(jí)級(jí)3緒緒 隊(duì)隊(duì) 列列運(yùn)行運(yùn)行等待等待12354時(shí)間片時(shí)間片小小大大優(yōu)先級(jí)優(yōu)先級(jí)高高低低多級(jí)反饋隊(duì)列調(diào)度算法的性能多級(jí)反饋隊(duì)列調(diào)度算法的性能 多級(jí)反饋隊(duì)列調(diào)度算法能較好地滿足各種類型用多級(jí)反饋隊(duì)列調(diào)度算法能較好地滿足各種類型用戶(進(jìn)程)的需要:戶(進(jìn)程)的需要:l終端(交互)型作業(yè)用戶終端(交互)型作業(yè)用戶l短批處理作業(yè)用戶短批處理作業(yè)用戶l長(zhǎng)批處理作業(yè)用戶長(zhǎng)批處理作業(yè)用戶3.3.4、基于公平原則的調(diào)度算法、基于公平原則的調(diào)度算法1、保證調(diào)度算法、保證調(diào)度算法如果系
26、統(tǒng)中有如果系統(tǒng)中有n個(gè)相同類型的進(jìn)程同時(shí)運(yùn)行,保個(gè)相同類型的進(jìn)程同時(shí)運(yùn)行,保證每個(gè)進(jìn)程都獲得相同的處理機(jī)時(shí)間證每個(gè)進(jìn)程都獲得相同的處理機(jī)時(shí)間1/n。2、公平分享調(diào)度算法、公平分享調(diào)度算法使所有用戶能獲得相同的處理機(jī)時(shí)間。使所有用戶能獲得相同的處理機(jī)時(shí)間。3.4 實(shí)時(shí)調(diào)度實(shí)現(xiàn)實(shí)時(shí)調(diào)度的基本概念和條件實(shí)時(shí)調(diào)度算法的分類常見的幾種實(shí)時(shí)調(diào)度算法1.實(shí)時(shí)調(diào)度實(shí)時(shí)調(diào)度是為了完成實(shí)時(shí)處理任務(wù)而分配處理機(jī)是為了完成實(shí)時(shí)處理任務(wù)而分配處理機(jī)的調(diào)度方法。的調(diào)度方法。 2. 2.硬實(shí)時(shí)任務(wù)要求計(jì)算機(jī)系統(tǒng)必須在用戶給定的硬實(shí)時(shí)任務(wù)要求計(jì)算機(jī)系統(tǒng)必須在用戶給定的時(shí)時(shí)限內(nèi)限內(nèi)完成完成 3.3.軟實(shí)時(shí)任務(wù)允許計(jì)算機(jī)系統(tǒng)在用
27、戶給定的軟實(shí)時(shí)任務(wù)允許計(jì)算機(jī)系統(tǒng)在用戶給定的時(shí)限左時(shí)限左右右處理完畢。處理完畢。提供更詳細(xì)的調(diào)度信息:提供更詳細(xì)的調(diào)度信息:就緒時(shí)間、開始截止時(shí)間或完成截止時(shí)間、處理時(shí)間就緒時(shí)間、開始截止時(shí)間或完成截止時(shí)間、處理時(shí)間、資源要求、優(yōu)先級(jí)等;、資源要求、優(yōu)先級(jí)等;含有硬實(shí)時(shí)任務(wù)的實(shí)時(shí)系統(tǒng)中,廣泛采用基于優(yōu)先級(jí)含有硬實(shí)時(shí)任務(wù)的實(shí)時(shí)系統(tǒng)中,廣泛采用基于優(yōu)先級(jí)的搶占式調(diào)度策略的搶占式調(diào)度策略l實(shí)時(shí)調(diào)度算法分類:實(shí)時(shí)調(diào)度算法分類:n非搶占式輪轉(zhuǎn)調(diào)度算法:非搶占式輪轉(zhuǎn)調(diào)度算法:只適用于一般實(shí)時(shí)信息處理系統(tǒng)只適用于一般實(shí)時(shí)信息處理系統(tǒng)n非搶占式優(yōu)先級(jí)調(diào)度算法:非搶占式優(yōu)先級(jí)調(diào)度算法:優(yōu)先級(jí)最高的實(shí)時(shí)任務(wù)排在就
28、優(yōu)先級(jí)最高的實(shí)時(shí)任務(wù)排在就緒隊(duì)列隊(duì)首,當(dāng)前任務(wù)終止或完成后才被調(diào)度。緒隊(duì)列隊(duì)首,當(dāng)前任務(wù)終止或完成后才被調(diào)度。n 基于時(shí)鐘中斷搶占式優(yōu)先級(jí)調(diào)度算法:基于時(shí)鐘中斷搶占式優(yōu)先級(jí)調(diào)度算法:新到的實(shí)時(shí)任務(wù)新到的實(shí)時(shí)任務(wù)的優(yōu)先級(jí)高于當(dāng)前任務(wù)時(shí),并不立即搶占的優(yōu)先級(jí)高于當(dāng)前任務(wù)時(shí),并不立即搶占CPUCPU,而是等到時(shí),而是等到時(shí)鐘中斷到來,才進(jìn)行切換。用于大多數(shù)的實(shí)時(shí)系統(tǒng)中。鐘中斷到來,才進(jìn)行切換。用于大多數(shù)的實(shí)時(shí)系統(tǒng)中。 n 立即搶占的優(yōu)先級(jí)調(diào)度算法:立即搶占的優(yōu)先級(jí)調(diào)度算法:這種算法適用于實(shí)時(shí)要求這種算法適用于實(shí)時(shí)要求比較嚴(yán)格的實(shí)時(shí)控制系統(tǒng)。比較嚴(yán)格的實(shí)時(shí)控制系統(tǒng)。常用的幾種實(shí)時(shí)調(diào)度算法常用的幾種實(shí)時(shí)
29、調(diào)度算法1、最早截止時(shí)間優(yōu)先算法(、最早截止時(shí)間優(yōu)先算法(EDF)該算法根據(jù)任務(wù)的該算法根據(jù)任務(wù)的開始截止時(shí)間開始截止時(shí)間來確定任務(wù)的優(yōu)先來確定任務(wù)的優(yōu)先級(jí)。截止時(shí)間越早,優(yōu)先級(jí)越高。級(jí)。截止時(shí)間越早,優(yōu)先級(jí)越高。該算法要求實(shí)時(shí)任務(wù)的就緒隊(duì)列按任務(wù)該算法要求實(shí)時(shí)任務(wù)的就緒隊(duì)列按任務(wù)截止時(shí)間截止時(shí)間的的早晚排序。調(diào)度程序總選擇隊(duì)首的任務(wù)執(zhí)行。早晚排序。調(diào)度程序總選擇隊(duì)首的任務(wù)執(zhí)行。該算法可用于搶占式和非搶占式調(diào)度。該算法可用于搶占式和非搶占式調(diào)度。t任務(wù)到達(dá)任務(wù)到達(dá)任務(wù)執(zhí)行任務(wù)執(zhí)行開始截止時(shí)間開始截止時(shí)間134211224433非搶占式調(diào)度方式非搶占式調(diào)度方式2、最低松弛度優(yōu)先算法(、最低松弛度
30、優(yōu)先算法(LLF)該算法根據(jù)任務(wù)的松弛度來確定任務(wù)的優(yōu)先級(jí)。松該算法根據(jù)任務(wù)的松弛度來確定任務(wù)的優(yōu)先級(jí)。松弛度越低,優(yōu)先級(jí)越高。弛度越低,優(yōu)先級(jí)越高。松弛度任務(wù)必須完成的時(shí)間運(yùn)行時(shí)間當(dāng)前時(shí)間松弛度任務(wù)必須完成的時(shí)間運(yùn)行時(shí)間當(dāng)前時(shí)間該算法要求實(shí)時(shí)任務(wù)的就緒隊(duì)列按松弛度排序。調(diào)該算法要求實(shí)時(shí)任務(wù)的就緒隊(duì)列按松弛度排序。調(diào)度程序總選擇隊(duì)首的任務(wù)執(zhí)行。度程序總選擇隊(duì)首的任務(wù)執(zhí)行。該算法主要用于該算法主要用于搶占式搶占式調(diào)度方式。調(diào)度方式。松弛度任務(wù)必須完成的時(shí)間運(yùn)行時(shí)間當(dāng)前時(shí)間松弛度任務(wù)必須完成的時(shí)間運(yùn)行時(shí)間當(dāng)前時(shí)間例:例:實(shí)時(shí)系統(tǒng)中有兩個(gè)周期性實(shí)時(shí)任務(wù)實(shí)時(shí)系統(tǒng)中有兩個(gè)周期性實(shí)時(shí)任務(wù)A、B,任務(wù),任務(wù)
31、A每每20ms執(zhí)行一次,執(zhí)行時(shí)間執(zhí)行一次,執(zhí)行時(shí)間10ms;任務(wù);任務(wù)B每每50ms執(zhí)行執(zhí)行一次,執(zhí)行時(shí)間一次,執(zhí)行時(shí)間25ms。采用搶占式。采用搶占式LLF算法:算法:t020406080100120140160A1A2A3A4A5A6A7A8B1B2B3任務(wù)任務(wù)AB每次必須完成的時(shí)間每次必須完成的時(shí)間松弛度松弛度t010203040455055607080A1=10B1=25A2=20B1=15A2=0B1=15A3=10B1=5A3=5B2=30此時(shí)執(zhí)此時(shí)執(zhí)行行B2A4=0B2=20A4完完B2=103、優(yōu)先級(jí)倒置問題、優(yōu)先級(jí)倒置問題(1)問題的形成)問題的形成即即OS中廣泛采用的優(yōu)先級(jí)
32、調(diào)度算法和搶占方式。中廣泛采用的優(yōu)先級(jí)調(diào)度算法和搶占方式。舉例舉例:三個(gè)獨(dú)立進(jìn)程三個(gè)獨(dú)立進(jìn)程P1、P2、P3,優(yōu)先級(jí)由高到低。,優(yōu)先級(jí)由高到低。P1、P3共享臨界資源進(jìn)行交互。代碼:共享臨界資源進(jìn)行交互。代碼:P1:.P(mutex);CS-1;V(mutex).;P2:.program2.;P3:.P(mutex);CS-3;V(mutex).;執(zhí)行順序:執(zhí)行順序:P3P2(搶占搶占)P1(阻塞)(阻塞)P2(執(zhí)行執(zhí)行結(jié)束結(jié)束)P3(執(zhí)行結(jié)束執(zhí)行結(jié)束)P1(執(zhí)行結(jié)束執(zhí)行結(jié)束)問題:?jiǎn)栴}:P1優(yōu)先級(jí)最高,但最后執(zhí)行結(jié)束優(yōu)先級(jí)最高,但最后執(zhí)行結(jié)束3、優(yōu)先級(jí)倒置問題(續(xù))、優(yōu)先級(jí)倒置問題(續(xù))(2
33、)問題的解決方案)問題的解決方案方案方案2:建立在動(dòng)態(tài)優(yōu)先級(jí)繼承基礎(chǔ)上。:建立在動(dòng)態(tài)優(yōu)先級(jí)繼承基礎(chǔ)上。規(guī)定:規(guī)定:P1阻塞時(shí)由阻塞時(shí)由P3繼承繼承P1的優(yōu)先級(jí),一直保持到的優(yōu)先級(jí),一直保持到P3退出臨界區(qū)。目的:防止退出臨界區(qū)。目的:防止P2進(jìn)程插進(jìn)來,延緩進(jìn)程插進(jìn)來,延緩P3退出退出臨界區(qū)。臨界區(qū)。方案方案1:P3進(jìn)入臨界區(qū)后不允許處理機(jī)被搶占。進(jìn)入臨界區(qū)后不允許處理機(jī)被搶占。適用情況:系統(tǒng)中臨界區(qū)較短且不多。適用情況:系統(tǒng)中臨界區(qū)較短且不多。3.5產(chǎn)生死鎖的原因和必要條件產(chǎn)生死鎖的原因和必要條件產(chǎn)生死鎖的原因產(chǎn)生死鎖的原因產(chǎn)生死鎖的必要條件產(chǎn)生死鎖的必要條件處理死鎖的基本方法處理死鎖的基本
34、方法.1、產(chǎn)生死鎖的原因、產(chǎn)生死鎖的原因一、死鎖(一、死鎖(Deadlock)定義:)定義:l死鎖是指兩個(gè)或兩個(gè)以上的進(jìn)程在運(yùn)行過程中,死鎖是指兩個(gè)或兩個(gè)以上的進(jìn)程在運(yùn)行過程中,因爭(zhēng)奪資源而造成的一種互相等待(誰也無法因爭(zhēng)奪資源而造成的一種互相等待(誰也無法再繼續(xù)推進(jìn))的現(xiàn)象,若無外力作用,它們都再繼續(xù)推進(jìn))的現(xiàn)象,若無外力作用,它們都將無法推進(jìn)下去。將無法推進(jìn)下去。二、產(chǎn)生死鎖的原因:二、產(chǎn)生死鎖的原因:l1、競(jìng)爭(zhēng)資源l2、進(jìn)程間推進(jìn)順序非法1、競(jìng)爭(zhēng)資源引起進(jìn)程死鎖、競(jìng)爭(zhēng)資源引起進(jìn)程死鎖 1.1 資源的兩種分類:資源的兩種分類:可搶占性資源:CPU、RAM等;不可搶占性資源:
35、打印機(jī)、磁帶機(jī)等;可重用性資源:打印機(jī)可消耗性資源:進(jìn)程通信中的消息、數(shù)據(jù)等l1.2 競(jìng)爭(zhēng)不可搶占性資源引起死鎖: 系統(tǒng)中配備的非剝奪性資源的數(shù)量不能滿足諸進(jìn)程運(yùn)行的需要時(shí),會(huì)使進(jìn)程因爭(zhēng)奪資源而陷入僵局。打印機(jī)打印機(jī)P1磁帶機(jī)磁帶機(jī)P21.3 競(jìng)爭(zhēng)可消耗資源引起死鎖:2 2、進(jìn)程間推進(jìn)順序不當(dāng)引起死鎖、進(jìn)程間推進(jìn)順序不當(dāng)引起死鎖l進(jìn)程推進(jìn)順序進(jìn)程推進(jìn)順序合法合法不會(huì)導(dǎo)致死鎖不會(huì)導(dǎo)致死鎖l進(jìn)程推進(jìn)順序進(jìn)程推進(jìn)順序非法非法可能會(huì)導(dǎo)致死可能會(huì)導(dǎo)致死圖圖1:順序合法:順序合法消息消息1P1消息消息2P2P3消息消息3圖圖2:順序非法:順序非法消息消息1P1消息消息2P2P3消息消息33.5.2、產(chǎn)生死
36、鎖的必要條件、產(chǎn)生死鎖的必要條件1、互斥條件、互斥條件l一個(gè)資源一次只能被一個(gè)進(jìn)程使用。一個(gè)資源一次只能被一個(gè)進(jìn)程使用。2、請(qǐng)求和保持條件(部分分配)、請(qǐng)求和保持條件(部分分配)l保留已經(jīng)得到的資源,還要求其它的資源。保留已經(jīng)得到的資源,還要求其它的資源。3、不可搶占條件、不可搶占條件l資源只能被占有者釋放,不能被其它進(jìn)程強(qiáng)資源只能被占有者釋放,不能被其它進(jìn)程強(qiáng)行搶占。行搶占。4、循環(huán)等待循環(huán)等待條件(循環(huán)等待)條件(循環(huán)等待)l系統(tǒng)中的進(jìn)程形成了環(huán)形的資源請(qǐng)求鏈。系統(tǒng)中的進(jìn)程形成了環(huán)形的資源請(qǐng)求鏈。3.5.3、處理死鎖的基本方法、處理死鎖的基本方法(1)預(yù)防死鎖)預(yù)防死鎖(2)避免死鎖)避免
37、死鎖(3)檢測(cè)死鎖)檢測(cè)死鎖(4)解除死鎖)解除死鎖3.6預(yù)防死鎖的方法預(yù)防死鎖的方法預(yù)防死鎖預(yù)防死鎖系統(tǒng)安全狀態(tài)系統(tǒng)安全狀態(tài)利用銀行家算法避免死鎖利用銀行家算法避免死鎖3.6.1、預(yù)防死鎖、預(yù)防死鎖一、預(yù)防死鎖的實(shí)質(zhì):一、預(yù)防死鎖的實(shí)質(zhì):l通過設(shè)置某些限制條件,預(yù)防發(fā)生死鎖。通過設(shè)置某些限制條件,預(yù)防發(fā)生死鎖。二、預(yù)防死鎖的方法:二、預(yù)防死鎖的方法: “互斥條件互斥條件”由資源的性質(zhì)決定。由資源的性質(zhì)決定。 1、摒棄、摒棄“請(qǐng)求和保持請(qǐng)求和保持”條件條件l在開始運(yùn)行前(創(chuàng)建時(shí)),一次性分配給進(jìn)程它在開始運(yùn)行前(創(chuàng)建時(shí)),一次性分配給進(jìn)程它所需的所需的“全部全部”資源。資源。l簡(jiǎn)單易實(shí)現(xiàn),安全
38、性高;資源浪費(fèi)。簡(jiǎn)單易實(shí)現(xiàn),安全性高;資源浪費(fèi)。2、摒棄、摒棄“不可搶占不可搶占”條件條件l當(dāng)進(jìn)程有新的資源請(qǐng)求時(shí),如果得不到滿足,要當(dāng)進(jìn)程有新的資源請(qǐng)求時(shí),如果得不到滿足,要先先釋放釋放原先占有的資源,待以后重新申請(qǐng)。原先占有的資源,待以后重新申請(qǐng)。l等價(jià)于此進(jìn)程等價(jià)于此進(jìn)程“被剝奪被剝奪”了已經(jīng)占有的資源。了已經(jīng)占有的資源。3、摒棄、摒棄“循環(huán)等待循環(huán)等待”條件條件l把系統(tǒng)資源按把系統(tǒng)資源按類型類型排序,進(jìn)程要按照資源的序號(hào)排序,進(jìn)程要按照資源的序號(hào)遞增遞增的次序提出資源申請(qǐng)。的次序提出資源申請(qǐng)。l較上述兩種方法的綜合性能要好;但系統(tǒng)配置資較上述兩種方法的綜合性能要好;但系統(tǒng)配置資源的序號(hào)
39、要穩(wěn)定,固定的訪問順序不一定合理。源的序號(hào)要穩(wěn)定,固定的訪問順序不一定合理。例例1:進(jìn)程進(jìn)程A占有占有3號(hào)資源,現(xiàn)在又申請(qǐng)?zhí)栙Y源,現(xiàn)在又申請(qǐng)5號(hào)資源號(hào)資源占有占有資源號(hào)小于申請(qǐng)資源號(hào),此申請(qǐng)可以滿足。資源號(hào)小于申請(qǐng)資源號(hào),此申請(qǐng)可以滿足。進(jìn)程進(jìn)程B占有占有5號(hào)資源,現(xiàn)在又申請(qǐng)?zhí)栙Y源,現(xiàn)在又申請(qǐng)3號(hào)資源號(hào)資源由于由于53,所以此申請(qǐng)不能滿足。進(jìn)程,所以此申請(qǐng)不能滿足。進(jìn)程B要想得到要想得到3號(hào)資號(hào)資源,必須先放棄源,必須先放棄5號(hào)以及所有編號(hào)比號(hào)以及所有編號(hào)比3大的資源。大的資源。例例2 2:哲學(xué)家就餐:哲學(xué)家就餐給哲學(xué)家和筷子編號(hào)給哲學(xué)家和筷子編號(hào)04信號(hào)量定義:信號(hào)量定義:varchopst
40、ick0,4ofsemaphore;信號(hào)量初值均為信號(hào)量初值均為1;第第i(i=0,1,2,3)位哲學(xué)家活動(dòng)描述:位哲學(xué)家活動(dòng)描述:第第4位哲學(xué)家活動(dòng)描述位哲學(xué)家活動(dòng)描述:while(true)while(true)P(chopsticki);P(chopstick0);P(chopstick(i+1);P(chopstick4);eating;eating;V(chopsticki);V(chopstick0);V(chopstick(i+1);V(chopstick4);thinking;thinking;3.6.2、系統(tǒng)安全狀態(tài)、系統(tǒng)安全狀態(tài)不安全狀態(tài)不安全狀態(tài)安全狀態(tài)安全狀態(tài)死鎖死鎖實(shí)
41、質(zhì):實(shí)質(zhì):把系統(tǒng)的狀態(tài)分為安全狀態(tài)和不安全狀態(tài),只把系統(tǒng)的狀態(tài)分為安全狀態(tài)和不安全狀態(tài),只要能使系統(tǒng)始終處于安全狀態(tài),便可避免發(fā)生死鎖要能使系統(tǒng)始終處于安全狀態(tài),便可避免發(fā)生死鎖1、安全狀態(tài)安全狀態(tài)l允許進(jìn)程動(dòng)態(tài)的申請(qǐng)資源,但在分配前,應(yīng)先計(jì)允許進(jìn)程動(dòng)態(tài)的申請(qǐng)資源,但在分配前,應(yīng)先計(jì)算分配的安全性。算分配的安全性。l所謂所謂“安全狀態(tài)安全狀態(tài)”:指系統(tǒng)能按某種進(jìn)程順序:指系統(tǒng)能按某種進(jìn)程順序(P1,P2,Pn),來為每個(gè)進(jìn)程,來為每個(gè)進(jìn)程Pi分配其所需資源,分配其所需資源,直至最大需求,使直至最大需求,使每個(gè)每個(gè)進(jìn)程都可以進(jìn)程都可以順利順利完成。反完成。反之,則系統(tǒng)處于之,則系統(tǒng)處于不安全狀態(tài)
42、。不安全狀態(tài)。l 不安全狀態(tài)不一定發(fā)生死鎖,但死鎖一定屬于不安全狀態(tài)不一定發(fā)生死鎖,但死鎖一定屬于不安全狀態(tài)。不安全狀態(tài)。進(jìn)程進(jìn)程最大最大需求需求已分已分配配系統(tǒng)系統(tǒng)可用可用P1P2P310495223系統(tǒng)資源總數(shù):系統(tǒng)資源總數(shù):12進(jìn)程進(jìn)程最大最大需求需求已已分分配配系統(tǒng)可系統(tǒng)可用用P1P2P310495232系統(tǒng)資源總數(shù):系統(tǒng)資源總數(shù):122、安全狀態(tài)之例:、安全狀態(tài)之例:轉(zhuǎn)化轉(zhuǎn)化l該算法能用于銀行系統(tǒng)現(xiàn)金貸款的發(fā)放而得名該算法能用于銀行系統(tǒng)現(xiàn)金貸款的發(fā)放而得名l銀行家算法的銀行家算法的實(shí)質(zhì)實(shí)質(zhì)就是要設(shè)法保證系統(tǒng)動(dòng)態(tài)分配資就是要設(shè)法保證系統(tǒng)動(dòng)態(tài)分配資源后仍然保持安全狀態(tài),從而避免死鎖的發(fā)生
43、。源后仍然保持安全狀態(tài),從而避免死鎖的發(fā)生。l要求進(jìn)程預(yù)先告知自己的最大資源需求,并且假設(shè)要求進(jìn)程預(yù)先告知自己的最大資源需求,并且假設(shè)系統(tǒng)擁有固定的資源總量。系統(tǒng)擁有固定的資源總量。3.6.2、利用銀行家算法避免死鎖利用銀行家算法避免死鎖1、相關(guān)的數(shù)據(jù)結(jié)構(gòu):、相關(guān)的數(shù)據(jù)結(jié)構(gòu):可用資源向量可用資源向量Available最大需求矩陣最大需求矩陣Max分配矩陣分配矩陣Allocation需求矩陣需求矩陣Need資源請(qǐng)求向量資源請(qǐng)求向量Requesti3、安全性算法:、安全性算法:工作向量工作向量Work、Finish2、銀行家算法:、銀行家算法:(1)Requesti=Need?(2)Request
44、i=Available?(3)修改相關(guān)向量的值)修改相關(guān)向量的值(4)執(zhí)行安全性算法)執(zhí)行安全性算法MaxAllocationNeedAvailableA B CA B CA B CA B CP0P1P2P3P47 5 33 2 29 0 22 2 24 3 30 1 02 0 03 0 22 1 10 0 27 4 31 2 26 0 00 1 14 3 13 3 2資源總數(shù)資源總數(shù) 10 5 7進(jìn)程進(jìn)程資源資源某時(shí)刻系統(tǒng)資源分配情況某時(shí)刻系統(tǒng)資源分配情況A B CWork AllocationA B CA B CA B CFinishAllocationNeedWork進(jìn)程進(jìn)程資源資源安全
45、序列安全序列(1)該時(shí)刻該時(shí)刻T0系統(tǒng)是安全的嗎?系統(tǒng)是安全的嗎?解:利用安全性算法解:利用安全性算法對(duì)該時(shí)刻的資源分配情況對(duì)該時(shí)刻的資源分配情況進(jìn)行分析,方法如下圖:進(jìn)行分析,方法如下圖:122200532true011211743true431211745true6003021047true7430101057true3325327437451047P1P3P4P2P0(2)若此時(shí)若此時(shí)P1請(qǐng)求資源,發(fā)出請(qǐng)求向量請(qǐng)求資源,發(fā)出請(qǐng)求向量Request1(1,0,2)系統(tǒng)可以為滿足請(qǐng)求嗎?系統(tǒng)可以為滿足請(qǐng)求嗎?解:系統(tǒng)按銀行家算法進(jìn)行檢查:解:系統(tǒng)按銀行家算法進(jìn)行檢查: Request1(1,
46、0,2)=Need1(1,2,2) Request1(1,0,2)=Available(3,3,2) 系系統(tǒng)先假定可為統(tǒng)先假定可為P1分配資源,分配資源,修改相關(guān)修改相關(guān)向量值:向量值: 利用利用安全性算法安全性算法檢查此時(shí)系統(tǒng)是否安全。具體檢查此時(shí)系統(tǒng)是否安全。具體:MaxAllocationNeedAvailableA B CA B CA B CA B CP0P1P2P3P47 5 33 2 29 0 22 2 24 3 30 1 02 0 03 0 22 1 10 0 27 4 31 2 26 0 00 1 14 3 13 3 2資源總數(shù)資源總數(shù) 10 5 7進(jìn)程進(jìn)程資源資源某時(shí)刻資源分
47、配情況某時(shí)刻資源分配情況3020202305 3 27 4 37 4 57 5 510 5 7A B CWork AllocationA B CA B CA B Ctruetruetruetruetrue3 0 22 1 10 0 20 1 03 0 20 2 00 1 14 3 17 4 36 0 02 3 05 3 27 4 37 4 57 5 5P1P3P4P0P2FinishAllocationNeedWork進(jìn)程進(jìn)程資源資源安全序列安全序列MaxAllocationNeedAvailableA B CA B CA B CA B CP0P1P2P3P47 5 33 2 29 0 22
48、2 24 3 30 1 02 0 03 0 22 1 10 0 27 4 31 2 26 0 00 1 14 3 13 3 2資源總數(shù)資源總數(shù) 10 5 7302020230進(jìn)程進(jìn)程資源資源某時(shí)刻資源分配情況某時(shí)刻資源分配情況A B CA B CA B CA B C3 3 2資源總數(shù)資源總數(shù)10 5 77 4 31 2 26 0 00 1 14 3 10 1 02 0 03 0 22 1 10 0 27 5 33 2 29 0 22 2 24 3 3P0P1P2P3P4AvailableNeedAllocationMax進(jìn)程進(jìn)程資源資源某時(shí)刻資源分配情況某時(shí)刻資源分配情況302020230(3)若此時(shí))若此時(shí)P4請(qǐng)求資源,發(fā)出請(qǐng)求向量請(qǐng)求資源,發(fā)出請(qǐng)求向量Request4(3,3,0)系統(tǒng)可以滿足請(qǐng)求嗎?系統(tǒng)可以滿足請(qǐng)求嗎?解:系統(tǒng)按銀行家算法進(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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市更新項(xiàng)目投資計(jì)劃書
- xx市城中村改造項(xiàng)目可行性研究報(bào)告
- 介紹小白兔的作文400字四年級(jí)
- 2024年版體育場(chǎng)館租賃協(xié)議細(xì)則版B版
- 人教版九年級(jí)初三物理期末考試(2份-含答案)
- 2024年民間借款擔(dān)保合同
- 2024年水利工程土方工程合同協(xié)議書
- 2024年裝修工程競(jìng)標(biāo)保證金合同2篇
- 簡(jiǎn)單匯編語言課程設(shè)計(jì)
- 2024年度互聯(lián)網(wǎng)金融服務(wù)平臺(tái)收款協(xié)議書3篇
- 《正態(tài)分布理論及其應(yīng)用研究》4200字(論文)
- GB/T 45086.1-2024車載定位系統(tǒng)技術(shù)要求及試驗(yàn)方法第1部分:衛(wèi)星定位
- 支氣管動(dòng)脈造影護(hù)理
- 1古詩文理解性默寫(教師卷)
- 校園春季安全
- 2024-2025學(xué)年六上科學(xué)期末綜合檢測(cè)卷(含答案)
- 【MOOC】工程力學(xué)-浙江大學(xué) 中國大學(xué)慕課MOOC答案
- 2024年湖南省公務(wù)員考試《行測(cè)》真題及答案解析
- 產(chǎn)房年終總結(jié)及明年計(jì)劃
- 超市消防安全巡查制度
- 北京交通大學(xué)《數(shù)據(jù)結(jié)構(gòu)與算法》2021-2022學(xué)年期末試卷
評(píng)論
0/150
提交評(píng)論