操作系統(tǒng)OSppt_03_第1頁
操作系統(tǒng)OSppt_03_第2頁
操作系統(tǒng)OSppt_03_第3頁
操作系統(tǒng)OSppt_03_第4頁
操作系統(tǒng)OSppt_03_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第三章第三章 處理機調(diào)度與死鎖處理機調(diào)度與死鎖教學(xué)目的和要求:教學(xué)目的和要求: 使學(xué)生理解和掌握處理機調(diào)度的調(diào)度算法和死鎖的相關(guān)使學(xué)生理解和掌握處理機調(diào)度的調(diào)度算法和死鎖的相關(guān)概念以及避免死鎖的方法。概念以及避免死鎖的方法。理解進程調(diào)度的概念與分類。理解進程調(diào)度的概念與分類。了解幾種常見的實時系統(tǒng)的調(diào)度算法,掌握死鎖的概念了解幾種常見的實時系統(tǒng)的調(diào)度算法,掌握死鎖的概念和產(chǎn)生的必要條件、死鎖的預(yù)防和避免方法。熟練掌握和產(chǎn)生的必要條件、死鎖的預(yù)防和避免方法。熟練掌握調(diào)度算法、銀行家算法。調(diào)度算法、銀行家算法。 重點難點:重點難點: 進程調(diào)度和常見的調(diào)度算法、死鎖的概念和產(chǎn)生的必進程調(diào)度和常見的調(diào)

2、度算法、死鎖的概念和產(chǎn)生的必要條件、銀行家算法避免死鎖。要條件、銀行家算法避免死鎖。 第一節(jié)第一節(jié) 處理機調(diào)度的基本概念處理機調(diào)度的基本概念第二節(jié)第二節(jié) 調(diào)度算法調(diào)度算法第三節(jié)第三節(jié) 實時調(diào)度實時調(diào)度第四節(jié)第四節(jié) 多處理機系統(tǒng)中的調(diào)度多處理機系統(tǒng)中的調(diào)度第五節(jié)第五節(jié) 產(chǎn)生死鎖的原因和必要條件產(chǎn)生死鎖的原因和必要條件第六節(jié)第六節(jié) 死鎖問題的解決方法死鎖問題的解決方法作業(yè)與復(fù)習(xí)題作業(yè)與復(fù)習(xí)題目錄第一節(jié)第一節(jié) 處理機調(diào)度的基本概念處理機調(diào)度的基本概念高高/中中/低級調(diào)度低級調(diào)度調(diào)度隊列模型調(diào)度隊列模型調(diào)度方式和算法的選擇準則調(diào)度方式和算法的選擇準則1、高、高/中中/低級調(diào)度低級調(diào)度高級調(diào)度高級調(diào)度(

3、作業(yè)(作業(yè) / 長程長程 / 接納調(diào)度)接納調(diào)度)l決定把外存上處于后備隊列中的哪些作業(yè)調(diào)入內(nèi)決定把外存上處于后備隊列中的哪些作業(yè)調(diào)入內(nèi)存,并為它們創(chuàng)建進程、分配必要的資源,準備存,并為它們創(chuàng)建進程、分配必要的資源,準備執(zhí)行。執(zhí)行。(作業(yè)、作業(yè)步、作業(yè)流,作業(yè)、作業(yè)步、作業(yè)流,JCB)l多用于批處理系統(tǒng)多用于批處理系統(tǒng)l每次調(diào)度時要考慮:每次調(diào)度時要考慮: (1)接納多少作業(yè):取決于多道程序度接納多少作業(yè):取決于多道程序度 (2)接納哪些作業(yè):取決于調(diào)度算法接納哪些作業(yè):取決于調(diào)度算法l作業(yè)調(diào)度運行頻率低,幾分鐘一次作業(yè)調(diào)度運行頻率低,幾分鐘一次系統(tǒng)規(guī)模系統(tǒng)規(guī)模運行速度運行速度低級調(diào)度(進程低

4、級調(diào)度(進程 / 短程調(diào)度)短程調(diào)度)決定就緒隊列中的哪個進程應(yīng)獲得處理機,然后決定就緒隊列中的哪個進程應(yīng)獲得處理機,然后再由分派程序執(zhí)行把處理機分配給該進程的具體再由分派程序執(zhí)行把處理機分配給該進程的具體操作操作低級調(diào)度的功能:(1)保存處理機的現(xiàn)場信息。 (2)按某種算法選取進程。(3)把處理器分配給進程。三個基本機制:排隊器、分派器、上下文切換機制。是是最基本最基本的調(diào)度,在三種類型的的調(diào)度,在三種類型的OS中都必須配置中都必須配置運行頻率高,幾十毫秒一次,算法不能太復(fù)雜運行頻率高,幾十毫秒一次,算法不能太復(fù)雜進程調(diào)度采用兩種方式:非搶占方式、搶占方式進程調(diào)度采用兩種方式:非搶占方式、搶

5、占方式非搶占方式:非搶占方式:l一旦進程獲得處理機,則一直執(zhí)行,直到該進程完一旦進程獲得處理機,則一直執(zhí)行,直到該進程完成或被阻塞成或被阻塞l優(yōu)點:簡單、系統(tǒng)開銷小,適合大多數(shù)批處理系統(tǒng)優(yōu)點:簡單、系統(tǒng)開銷小,適合大多數(shù)批處理系統(tǒng)l缺點:無法滿足緊急任務(wù)的需要,不適合實時系統(tǒng)缺點:無法滿足緊急任務(wù)的需要,不適合實時系統(tǒng)搶占方式:搶占方式:l允許調(diào)度程序根據(jù)某原則,暫停正在執(zhí)行的進程,允許調(diào)度程序根據(jù)某原則,暫停正在執(zhí)行的進程,將處理機重新分配將處理機重新分配搶占原則:搶占原則:l優(yōu)先權(quán)原則優(yōu)先權(quán)原則 就緒的高優(yōu)先權(quán)進程有權(quán)搶占低優(yōu)先權(quán)進程的就緒的高優(yōu)先權(quán)進程有權(quán)搶占低優(yōu)先權(quán)進程的CPUl短作業(yè)

6、優(yōu)先原則短作業(yè)優(yōu)先原則 就緒的短作業(yè)就緒的短作業(yè)(進程進程)有權(quán)搶占長作業(yè)有權(quán)搶占長作業(yè)(進程進程)的的CPUl時間片原則時間片原則 一個時間片用完后,系統(tǒng)重新進行進程調(diào)度一個時間片用完后,系統(tǒng)重新進行進程調(diào)度中級調(diào)度(中程調(diào)度)中級調(diào)度(中程調(diào)度)l目的:目的:為了解決內(nèi)存緊張問題,常用于分時系統(tǒng)為了解決內(nèi)存緊張問題,常用于分時系統(tǒng)l按一定的算法將外存上已具備運行條件的掛起進按一定的算法將外存上已具備運行條件的掛起進程換入內(nèi)存,掛到就緒隊列上,準備執(zhí)行;而將程換入內(nèi)存,掛到就緒隊列上,準備執(zhí)行;而將內(nèi)存中處于阻塞狀態(tài)的某些進程換出至外存。內(nèi)存中處于阻塞狀態(tài)的某些進程換出至外存。總結(jié)總結(jié)引起進

7、程調(diào)度的原因有:引起進程調(diào)度的原因有:l進程正常終止或異常終止進程正常終止或異常終止l正在執(zhí)行的進程因某種原因而阻塞(正在執(zhí)行的進程因某種原因而阻塞(I/O請求)請求)l分時系統(tǒng)中時間片用盡分時系統(tǒng)中時間片用盡l當有一個優(yōu)先級更高的進程就緒(可搶占式)當有一個優(yōu)先級更高的進程就緒(可搶占式)l在進程通信中,執(zhí)行中的進程執(zhí)行了某種原語操在進程通信中,執(zhí)行中的進程執(zhí)行了某種原語操作。作。如:如:P操作、操作、Block原語、原語、wakeup原語等原語等2、調(diào)度隊列模型、調(diào)度隊列模型僅具有進程調(diào)度的調(diào)度隊列模型僅具有進程調(diào)度的調(diào)度隊列模型就就緒緒隊隊列列阻阻塞塞隊隊列列CPU時間片完時間片完交互用

8、戶交互用戶進程調(diào)度進程調(diào)度進程完成進程完成等待事件等待事件事件發(fā)生事件發(fā)生 具有高、低兩級調(diào)度的調(diào)度隊列模型具有高、低兩級調(diào)度的調(diào)度隊列模型就就緒緒隊隊列列阻阻塞塞隊隊列列CPU時間片完時間片完作業(yè)作業(yè)調(diào)度調(diào)度進程調(diào)度進程調(diào)度進程完成進程完成等待事件等待事件1阻阻塞塞隊隊列列阻阻塞塞隊隊列列等待事件等待事件2等待事件等待事件n事件事件1發(fā)生發(fā)生事件事件2發(fā)生發(fā)生事件事件n發(fā)生發(fā)生后后備備隊隊列列 具有高、低、中三級調(diào)度的調(diào)度隊列模型具有高、低、中三級調(diào)度的調(diào)度隊列模型就就 緒緒 隊隊 列列緒緒就就、 掛掛 起起 隊隊 列列CPU時間片完時間片完作業(yè)作業(yè)調(diào)度調(diào)度進程調(diào)度進程調(diào)度進程完成進程完成事

9、件出現(xiàn)事件出現(xiàn)阻阻 塞塞 隊隊 列列掛起掛起等待事件等待事件中級中級調(diào)度調(diào)度事件發(fā)生事件發(fā)生后后 備備 隊隊 列列塞塞阻阻、 掛掛 起起 隊隊 列列掛起掛起3、調(diào)度方式和算法的選擇準則、調(diào)度方式和算法的選擇準則面向用戶的準則面向用戶的準則l周轉(zhuǎn)時間短周轉(zhuǎn)時間短評價批處理系統(tǒng)評價批處理系統(tǒng) 周轉(zhuǎn)時間:周轉(zhuǎn)時間:是指從作業(yè)被提交系統(tǒng)開始,到作業(yè)是指從作業(yè)被提交系統(tǒng)開始,到作業(yè)完成為止的這段時間間隔。完成為止的這段時間間隔。 包括四部分:等待作業(yè)調(diào)度時間、等待進程調(diào)度包括四部分:等待作業(yè)調(diào)度時間、等待進程調(diào)度時間、執(zhí)行時間、進程等待時間、執(zhí)行時間、進程等待I/O操作完成時間。操作完成時間。 平均周轉(zhuǎn)

10、時間、帶權(quán)周轉(zhuǎn)時間平均周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間l響應(yīng)時間快響應(yīng)時間快評價分時系統(tǒng)評價分時系統(tǒng) 響應(yīng)時間:響應(yīng)時間:從用戶通過鍵盤提交一個請求開始直從用戶通過鍵盤提交一個請求開始直至系統(tǒng)首次產(chǎn)生響應(yīng)為止。至系統(tǒng)首次產(chǎn)生響應(yīng)為止。 包括三部分時間:從鍵盤輸入的請求信息傳送到包括三部分時間:從鍵盤輸入的請求信息傳送到處理機的時間、處理時間、響應(yīng)信息回送終端的處理機的時間、處理時間、響應(yīng)信息回送終端的時間。時間。l截止時間保證截止時間保證評價實時系統(tǒng)評價實時系統(tǒng)l優(yōu)先權(quán)準則優(yōu)先權(quán)準則三種系統(tǒng)中皆適用三種系統(tǒng)中皆適用面向系統(tǒng)的準則面向系統(tǒng)的準則l系統(tǒng)吞吐量高系統(tǒng)吞吐量高評價批處理系統(tǒng)評價批處理系統(tǒng)l處理機

11、利用率好處理機利用率好針對大中型系統(tǒng)針對大中型系統(tǒng)l各類資源的平衡利用各類資源的平衡利用對大中型系統(tǒng)對大中型系統(tǒng)第二節(jié)第二節(jié) 調(diào)度算法調(diào)度算法先來先服務(wù)先來先服務(wù)短作業(yè)(進程)優(yōu)先短作業(yè)(進程)優(yōu)先高優(yōu)先權(quán)先調(diào)度高優(yōu)先權(quán)先調(diào)度時間片輪轉(zhuǎn)時間片輪轉(zhuǎn)多級反饋隊列多級反饋隊列1、先來先服務(wù)(、先來先服務(wù)(FCFS)可用于作業(yè)調(diào)度和進程調(diào)度可用于作業(yè)調(diào)度和進程調(diào)度用于作業(yè)調(diào)度:用于作業(yè)調(diào)度:l每次從后備作業(yè)隊列中選擇最先進入的作業(yè),將它每次從后備作業(yè)隊列中選擇最先進入的作業(yè),將它們調(diào)入內(nèi)存,為它們分配資源、創(chuàng)建進程,然后掛們調(diào)入內(nèi)存,為它們分配資源、創(chuàng)建進程,然后掛到就緒進程隊列上。到就緒進程隊列上。

12、用于進程調(diào)度:用于進程調(diào)度:l每次從就緒進程隊列中選擇最先進入的進程,為之每次從就緒進程隊列中選擇最先進入的進程,為之分配處理機,使之投入運行。分配處理機,使之投入運行。l直到運行完成進程才會讓出處理機直到運行完成進程才會讓出處理機-非搶占式。非搶占式。l有利于長作業(yè),而不利于短作業(yè)。有利于長作業(yè),而不利于短作業(yè)。進程進程名名到達到達時間時間服務(wù)服務(wù)時間時間開始執(zhí)開始執(zhí)行時間行時間完成完成時間時間周轉(zhuǎn)周轉(zhuǎn)時間時間帶權(quán)周帶權(quán)周轉(zhuǎn)時間轉(zhuǎn)時間A010111B110011011001C21101102100100D31001022021991.99性能評價:性能評價:l周轉(zhuǎn)時間周轉(zhuǎn)時間 = 完成時間完

13、成時間 到達時間到達時間l帶權(quán)周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間 = 周轉(zhuǎn)時間周轉(zhuǎn)時間 / 服務(wù)(運行)時間服務(wù)(運行)時間2、短作業(yè)、短作業(yè) / 進程優(yōu)先(進程優(yōu)先(SJ/PF)短作業(yè)優(yōu)先(短作業(yè)優(yōu)先(SJF)l從后備隊列中選擇估計運行時間最短的作業(yè),調(diào)從后備隊列中選擇估計運行時間最短的作業(yè),調(diào)入內(nèi)存運行。入內(nèi)存運行。短進程優(yōu)先(短進程優(yōu)先(SPF)l從就緒隊列中選出估計運行時間最短的進程,將從就緒隊列中選出估計運行時間最短的進程,將處理機分配給它,使它立即執(zhí)行。處理機分配給它,使它立即執(zhí)行。l直到運行完成進程才會讓出處理機直到運行完成進程才會讓出處理機-非搶占式。非搶占式。缺點:缺點:l對長作業(yè)不利,有

14、可能長期不被調(diào)度;對長作業(yè)不利,有可能長期不被調(diào)度;l完全沒考慮作業(yè)的緊迫程度(某些特殊的);完全沒考慮作業(yè)的緊迫程度(某些特殊的);l用戶做出的估計時間帶有很大的主觀性。用戶做出的估計時間帶有很大的主觀性。2.259133.5141844E3.116182101252C2.678926731B1.5365.5111423D2.11帶權(quán)周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間84周轉(zhuǎn)時間周轉(zhuǎn)時間4完成時間完成時間FJS2.81帶權(quán)周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間94周轉(zhuǎn)時間周轉(zhuǎn)時間4完成時間完成時間FCFS4服務(wù)時間服務(wù)時間0到達時間到達時間平均平均A進程名進程名 作作調(diào)調(diào) 業(yè)業(yè) 度度 情情 算算 況況 法法l周轉(zhuǎn)時間周轉(zhuǎn)時

15、間 = 完成時間完成時間 到達時間到達時間l帶權(quán)周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間 = 周轉(zhuǎn)時間周轉(zhuǎn)時間 / 服務(wù)時間服務(wù)時間3、高優(yōu)先權(quán)先調(diào)度算法(、高優(yōu)先權(quán)先調(diào)度算法(HPF)既能用于作業(yè)調(diào)度,也可用于進程調(diào)度。既能用于作業(yè)調(diào)度,也可用于進程調(diào)度。作業(yè)調(diào)度:從后備隊列中選擇若干個優(yōu)先權(quán)最高的作業(yè)調(diào)度:從后備隊列中選擇若干個優(yōu)先權(quán)最高的作業(yè)裝入內(nèi)存。作業(yè)裝入內(nèi)存。進程調(diào)度:把處理機分配給就緒隊列中優(yōu)先權(quán)最高進程調(diào)度:把處理機分配給就緒隊列中優(yōu)先權(quán)最高的進程的進程兩種占用兩種占用CPU的方式:非搶占式、搶占式的方式:非搶占式、搶占式l非搶占式優(yōu)先權(quán)算法:非搶占式優(yōu)先權(quán)算法:l搶占式優(yōu)先權(quán)算法:搶占式優(yōu)先權(quán)算

16、法: 注:規(guī)定優(yōu)先數(shù)越小,其優(yōu)先權(quán)越高注:規(guī)定優(yōu)先數(shù)越小,其優(yōu)先權(quán)越高4/348334C15/81517482B119118D帶權(quán)周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間周轉(zhuǎn)時間周轉(zhuǎn)時間155完成時間完成時間2優(yōu)先權(quán)優(yōu)先權(quán)非搶占式優(yōu)非搶占式優(yōu)先權(quán)算法先權(quán)算法5服務(wù)時間服務(wù)時間0到達時間到達時間A進程名進程名 作作調(diào)調(diào) 業(yè)業(yè) 度度 情情 算算 況況 法法平均平均6.251.3關(guān)鍵:優(yōu)先權(quán)的確定關(guān)鍵:優(yōu)先權(quán)的確定l優(yōu)先權(quán)類型一:靜態(tài)優(yōu)先權(quán)(進程類型,對資源的優(yōu)先權(quán)類型一:靜態(tài)優(yōu)先權(quán)(進程類型,對資源的需求,用戶要求)需求,用戶要求)在進程創(chuàng)建時確定的,在進程整個運行期間保持不變。在進程創(chuàng)建時確定的,在進程整個運行期間

17、保持不變。t(等待等待)優(yōu)先權(quán)優(yōu)先權(quán)t(運行運行)優(yōu)先權(quán)優(yōu)先權(quán)l(xiāng)優(yōu)先權(quán)類型二:動態(tài)優(yōu)先權(quán)優(yōu)先權(quán)類型二:動態(tài)優(yōu)先權(quán)在進程創(chuàng)建時創(chuàng)立的優(yōu)先權(quán),可隨進程的推進或等待在進程創(chuàng)建時創(chuàng)立的優(yōu)先權(quán),可隨進程的推進或等待時間的增加而改變。如等待時間長,優(yōu)先權(quán)升高。時間的增加而改變。如等待時間長,優(yōu)先權(quán)升高。 等待時間等待時間 + 要求服務(wù)時間要求服務(wù)時間優(yōu)先權(quán)優(yōu)先權(quán) = - 要求服務(wù)時間要求服務(wù)時間 等待時間等待時間 + 要求服務(wù)時間要求服務(wù)時間 響應(yīng)時間響應(yīng)時間 響應(yīng)比響應(yīng)比(Rp) = - = - 要求服務(wù)時間要求服務(wù)時間 要求服務(wù)時間要求服務(wù)時間高響應(yīng)比優(yōu)先調(diào)度算法高響應(yīng)比優(yōu)先調(diào)度算法(HRRN)l為每

18、個進程引入動態(tài)優(yōu)先權(quán),隨著等待時間增為每個進程引入動態(tài)優(yōu)先權(quán),隨著等待時間增加優(yōu)先權(quán)提高。加優(yōu)先權(quán)提高。優(yōu)點:優(yōu)點:等待時間相同,短作業(yè)優(yōu)先權(quán)高等待時間相同,短作業(yè)優(yōu)先權(quán)高 (即即SPF)要求服務(wù)時間相同,等待時間長,優(yōu)先權(quán)高要求服務(wù)時間相同,等待時間長,優(yōu)先權(quán)高(即即FCFS)對于長作業(yè),在等待足夠時間后,可獲得處理機對于長作業(yè),在等待足夠時間后,可獲得處理機3.571528E2.2591344C1.177962B2.8142056D2.141帶權(quán)周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間83周轉(zhuǎn)時間周轉(zhuǎn)時間3完成時間完成時間3服務(wù)時間服務(wù)時間0到達時間到達時間平均平均A進程名進程名 作作調(diào)調(diào) 業(yè)業(yè) 度度 情情

19、算算 況況 法法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)高)4、時間片輪轉(zhuǎn)(、時間片輪轉(zhuǎn)(RR)特別適用特別適用于于分時系統(tǒng)分時系統(tǒng)的搶占方式調(diào)度算法。的搶占方式調(diào)度算法。系統(tǒng)將所有的就緒進程按系統(tǒng)將所有的就緒進程按FIFO原則排成一個隊列,原則排成一個隊列,將將CPU分配給分配給隊首隊首進程,執(zhí)行進程,執(zhí)行一個時間片一個時間片。在時。在時間片內(nèi)進程未完,則插入間片內(nèi)進程未完,則插入就緒隊列未尾就緒隊列未尾,CPU交

20、交給下一個進程。給下一個進程。時間片選擇問題:時間片選擇問題:l固定時間片、可變時間片固定時間片、可變時間片與時間片大小有關(guān)的因素:與時間片大小有關(guān)的因素:l系統(tǒng)響應(yīng)時間、就緒進程個數(shù)、系統(tǒng)響應(yīng)時間、就緒進程個數(shù)、CPU能力能力2)時間片大小的確定(a)q=1(b)q=4圖圖3-5 q=1和和q=5時的進程運行情況時的進程運行情況進程名進程名ABCDE平均平均到達時間01234服務(wù)時間43524RR q=1完成時間1210181117周轉(zhuǎn)時間1291681311.6帶權(quán)周轉(zhuǎn)時間333.243.253.29RR q=4完成時間47121418周轉(zhuǎn)時間461011149帶權(quán)周轉(zhuǎn)時間1225.53.

21、52.8作業(yè)作業(yè)情況情況時間片時間片圖圖3-6 q=1和和q=4時進程的周轉(zhuǎn)時間時進程的周轉(zhuǎn)時間5、多級反饋隊列、多級反饋隊列l(wèi)設(shè)置多個就緒隊列設(shè)置多個就緒隊列,并為各個隊列賦予不同的優(yōu),并為各個隊列賦予不同的優(yōu)先級和不同長度的時間片;先級和不同長度的時間片;l新創(chuàng)建的進程新創(chuàng)建的進程掛到第一優(yōu)先級的隊列后,然后按掛到第一優(yōu)先級的隊列后,然后按 FCFS 原則排隊等待調(diào)度。當輪到其執(zhí)行時,如原則排隊等待調(diào)度。當輪到其執(zhí)行時,如它能在時間片內(nèi)完成,便撤離系統(tǒng);如果不能完它能在時間片內(nèi)完成,便撤離系統(tǒng);如果不能完成,便被掛入第二級隊列后,成,便被掛入第二級隊列后,最后一級最后一級隊隊列采用列采用時

22、間片輪轉(zhuǎn)法時間片輪轉(zhuǎn)法;l僅當?shù)谝患夑犃锌臻e時僅當?shù)谝患夑犃锌臻e時,調(diào)度程序才調(diào)度第二級,調(diào)度程序才調(diào)度第二級隊列中的進程運行,依次類推隊列中的進程運行,依次類推;新進程可搶;新進程可搶占低級進程的處理機。占低級進程的處理機。 多級反饋隊列調(diào)度算法示意圖多級反饋隊列調(diào)度算法示意圖CPU時間時間片完片完進程進程調(diào)度調(diào)度進程完成進程完成就就緒緒隊隊列列一一就就緒緒隊隊列列二二就就緒緒隊隊列列三三就就緒緒隊隊列列 n時間時間片完片完時間時間片完片完優(yōu)先權(quán)優(yōu)先權(quán)時間片時間片多級反饋隊列調(diào)度算法的性能多級反饋隊列調(diào)度算法的性能 多級反饋隊列調(diào)度算法能較好地滿足各種類型用多級反饋隊列調(diào)度算法能較好地滿足各

23、種類型用戶(進程)的需要:戶(進程)的需要:l終端(交互)型作業(yè)用戶終端(交互)型作業(yè)用戶l短批處理作業(yè)用戶短批處理作業(yè)用戶l長批處理作業(yè)用戶長批處理作業(yè)用戶第三節(jié) 實時調(diào)度實現(xiàn)實時調(diào)度的基本概念和條件實時調(diào)度算法的分類常見的幾種實時調(diào)度算法 1.實時調(diào)度實時調(diào)度是為了完成實時處理任務(wù)而分配處理機是為了完成實時處理任務(wù)而分配處理機的調(diào)度方法。的調(diào)度方法。 2. 2.硬實時任務(wù)要求計算機系統(tǒng)必須在用戶給定的硬實時任務(wù)要求計算機系統(tǒng)必須在用戶給定的時時限內(nèi)限內(nèi)完成完成 3.3.軟實時任務(wù)允許計算機系統(tǒng)在用戶給定的軟實時任務(wù)允許計算機系統(tǒng)在用戶給定的時限左時限左右右處理完畢。處理完畢。提供更詳細的調(diào)

24、度信息:提供更詳細的調(diào)度信息:就緒時間、開始截止時間或完成截止時間、處理時間就緒時間、開始截止時間或完成截止時間、處理時間、資源要求、優(yōu)先級等;、資源要求、優(yōu)先級等;含有硬實時任務(wù)的實時系統(tǒng)中,廣泛采用基于優(yōu)先級含有硬實時任務(wù)的實時系統(tǒng)中,廣泛采用基于優(yōu)先級的搶占式調(diào)度策略的搶占式調(diào)度策略l實時調(diào)度算法分類:實時調(diào)度算法分類:n非搶占式輪轉(zhuǎn)調(diào)度算法:非搶占式輪轉(zhuǎn)調(diào)度算法:只適用于一般實時信息處理系統(tǒng)只適用于一般實時信息處理系統(tǒng)n非搶占式優(yōu)先級調(diào)度算法:非搶占式優(yōu)先級調(diào)度算法:優(yōu)先級最高的實時任務(wù)排在就優(yōu)先級最高的實時任務(wù)排在就緒隊列隊首,當前任務(wù)終止或完成后才被調(diào)度。緒隊列隊首,當前任務(wù)終止或

25、完成后才被調(diào)度。n 基于時鐘中斷搶占式優(yōu)先級調(diào)度算法:基于時鐘中斷搶占式優(yōu)先級調(diào)度算法:新到的實時任務(wù)新到的實時任務(wù)的優(yōu)先級高于當前任務(wù)時,并不立即搶占的優(yōu)先級高于當前任務(wù)時,并不立即搶占CPUCPU,而是等到時,而是等到時鐘中斷到來,才進行切換。用于大多數(shù)的實時系統(tǒng)中。鐘中斷到來,才進行切換。用于大多數(shù)的實時系統(tǒng)中。 n 立即搶占的優(yōu)先級調(diào)度算法:立即搶占的優(yōu)先級調(diào)度算法:這種算法適用于實時要求這種算法適用于實時要求比較嚴格的實時控制系統(tǒng)。比較嚴格的實時控制系統(tǒng)。常用的幾種實時調(diào)度算法常用的幾種實時調(diào)度算法1、最早截止時間優(yōu)先算法(、最早截止時間優(yōu)先算法(EFD) 該算法根據(jù)任務(wù)的該算法根據(jù)

26、任務(wù)的開始截止時間開始截止時間來確定任務(wù)的優(yōu)先來確定任務(wù)的優(yōu)先級。截止時間越早,優(yōu)先級越高。級。截止時間越早,優(yōu)先級越高。 該算法要求實時任務(wù)的就緒隊列按任務(wù)該算法要求實時任務(wù)的就緒隊列按任務(wù)截止時間截止時間的的早晚排序。調(diào)度程序總選擇隊首的任務(wù)執(zhí)行。早晚排序。調(diào)度程序總選擇隊首的任務(wù)執(zhí)行。 該算法可用于搶占式和非搶占式調(diào)度。該算法可用于搶占式和非搶占式調(diào)度。t任務(wù)到達任務(wù)到達任務(wù)執(zhí)行任務(wù)執(zhí)行開始截止時間開始截止時間134211224433非搶占式調(diào)度方式非搶占式調(diào)度方式2)搶占式調(diào)度方式用于周期實時任務(wù)有兩個周期性任務(wù),任務(wù)A的周期時間為20ms,每個周期的處理時間為10ms;任務(wù)B的周期時

27、間為50ms,每個周期的處理時間為25ms.2、最低松弛度優(yōu)先算法(、最低松弛度優(yōu)先算法(LLF) 該算法根據(jù)任務(wù)的松弛度來確定任務(wù)的優(yōu)先級。松該算法根據(jù)任務(wù)的松弛度來確定任務(wù)的優(yōu)先級。松弛度越低,優(yōu)先級越高。弛度越低,優(yōu)先級越高。松弛度任務(wù)必須完成的時間運行時間當前時間松弛度任務(wù)必須完成的時間運行時間當前時間 該算法要求實時任務(wù)的就緒隊列按松弛度排序。調(diào)該算法要求實時任務(wù)的就緒隊列按松弛度排序。調(diào)度程序總選擇隊首的任務(wù)執(zhí)行。度程序總選擇隊首的任務(wù)執(zhí)行。 該算法主要用于該算法主要用于搶占式搶占式調(diào)度方式。調(diào)度方式。到達時間、執(zhí)行到達時間、執(zhí)行時間和最后期限時間和最后期限固定優(yōu)先級調(diào)度固定優(yōu)先級

28、調(diào)度(A有較高優(yōu)先級)有較高優(yōu)先級)固定優(yōu)先級調(diào)度固定優(yōu)先級調(diào)度(B有較高優(yōu)先級)有較高優(yōu)先級)使用完成最后使用完成最后期限最早和最期限最早和最后期限調(diào)度后期限調(diào)度松弛度任務(wù)必須完成的時間運行時間當前時間松弛度任務(wù)必須完成的時間運行時間當前時間例:例:實時系統(tǒng)中有兩個周期性實時任務(wù)實時系統(tǒng)中有兩個周期性實時任務(wù)A、B,任務(wù),任務(wù)A每每20ms執(zhí)行一次,執(zhí)行時間執(zhí)行一次,執(zhí)行時間10ms;任務(wù);任務(wù)B每每50ms執(zhí)行執(zhí)行一次,執(zhí)行時間一次,執(zhí)行時間25ms。采用搶占式。采用搶占式LLF算法:算法:t0 20 40 60 80 100 120 140 160A1 A2 A3 A4 A5 A6 A7

29、 A8B1B2B3任務(wù)任務(wù)A B每次必須完成的時間每次必須完成的時間松弛度松弛度t0 10 20 30 40 45 50 55 60 70 80A1=10B1=25A2=20B1=15A2=0B1=15A3=10B1=5A3=5B2=30此時執(zhí)此時執(zhí)行行B2A4=0B2=20A4完完B2=10t0 20 40 60 80 100 120 140 160A1 A2 A3 A4 A5 A6 A7 A8B1B2B3圖圖3-11 任務(wù)任務(wù)A和和B每次必須完成的時間每次必須完成的時間t1=0 ,A1的松弛度為的松弛度為20-10-0=10, B1松弛度為松弛度為50-25-0=25,A1運行運行t2=1

30、0, A尚未進入第二個周期,所以尚未進入第二個周期,所以B1運行運行t3=30 ,A2的松弛度為的松弛度為40-10-30=0, B1松弛度為松弛度為50-5-30=15,A2運行運行t4=40, A3的松弛度為的松弛度為60-10-40=10 ,B1松弛度為松弛度為50-5-40=5,B1運行運行t5=45 ,A3的松弛度為的松弛度為60-10-45=5 ,B尚未進入第二個周期尚未進入第二個周期,A3運行運行t6=55, A尚未進入第四個周期,尚未進入第四個周期,B2運行運行t7=70,A4的松弛度為的松弛度為80-10-70=0,B2松弛度為松弛度為100-10-70=20,A4運行運行2

31、0010304050607080t1=0B1(20)A2(10)A3(10)A4(10)A1(10)B1(5)B2(10)B2(15)t2t3t4t5t6t7t8圖圖3-12 利用利用LLF算法進行調(diào)度的情況算法進行調(diào)度的情況第五節(jié)第五節(jié) 產(chǎn)生死鎖的原因和必要條產(chǎn)生死鎖的原因和必要條件件產(chǎn)生死鎖的原因產(chǎn)生死鎖的原因產(chǎn)生死鎖的必要條件產(chǎn)生死鎖的必要條件1 1、產(chǎn)生死鎖的原因、產(chǎn)生死鎖的原因死鎖(死鎖(Deadlock):):l是指兩個或兩個以上的進程在運行過程中,因是指兩個或兩個以上的進程在運行過程中,因爭奪資源而造成的一種互相等待(誰也無法再爭奪資源而造成的一種互相等待(誰也無法再繼續(xù)推進)的

32、現(xiàn)象,若無外力作用,它們都將繼續(xù)推進)的現(xiàn)象,若無外力作用,它們都將無法推進下去。無法推進下去。產(chǎn)生死鎖的原因:產(chǎn)生死鎖的原因:l競爭資源競爭資源l進程間推進順序非法進程間推進順序非法1、競爭資源引起進程死鎖:、競爭資源引起進程死鎖:l可剝奪性資源:可剝奪性資源:CPU、RAM等;等;l非剝奪性資源:打印機、磁帶機等;非剝奪性資源:打印機、磁帶機等;l永久性資源:打印機;永久性資源:打印機;l臨時性資源:進程通信中的消息、數(shù)據(jù)等臨時性資源:進程通信中的消息、數(shù)據(jù)等l競爭非剝奪性資源:競爭非剝奪性資源: 系統(tǒng)中配備的非剝奪性資源的數(shù)量不能滿足系統(tǒng)中配備的非剝奪性資源的數(shù)量不能滿足諸進程運行的需要

33、時,會使進程因爭奪資源而諸進程運行的需要時,會使進程因爭奪資源而陷入僵局。陷入僵局。l競爭臨時性資源:競爭臨時性資源:打印機打印機P1磁帶機磁帶機P22 2、進程間推進順序不當引起死鎖、進程間推進順序不當引起死鎖l進程推進順序合法進程推進順序合法不會導(dǎo)致死鎖不會導(dǎo)致死鎖l進程推進順序非法進程推進順序非法可能會導(dǎo)致死可能會導(dǎo)致死順序合法順序合法消息消息1P1消息消息2P2P3消息消息3順序非法順序非法消息消息1P1消息消息2P2P3消息消息3在進程在進程P1和和P2并發(fā)執(zhí)行時,如果按下述順序推進:并發(fā)執(zhí)行時,如果按下述順序推進:P1:Request(R1);Request(R2);P1:Rele

34、ase(R1);Release(R2);P2:Request(R2);Request(R1);P2:Release(R2);Release(R1);曲線曲線兩進程均可順利完成,曲線兩進程均可順利完成,曲線 順序非法順序非法42、產(chǎn)生死鎖的必要條件、產(chǎn)生死鎖的必要條件互斥條件互斥條件l一個資源一次只能被一個進程使用。一個資源一次只能被一個進程使用。請求和保持條件(部分分配)請求和保持條件(部分分配)l保留已經(jīng)得到的資源,還要求其它的資源。保留已經(jīng)得到的資源,還要求其它的資源。不可剝奪條件(不可搶占)不可剝奪條件(不可搶占)l資源只能被占有者釋放,不能被其它進程強資源只能被占有者釋放,不能被其它進

35、程強行搶占。行搶占。環(huán)路等待條件(循環(huán)等待)環(huán)路等待條件(循環(huán)等待)l系統(tǒng)中的進程形成了環(huán)形的資源請求鏈。系統(tǒng)中的進程形成了環(huán)形的資源請求鏈。第六節(jié)第六節(jié) 死鎖問題的解決方法死鎖問題的解決方法預(yù)防死鎖預(yù)防死鎖避免死鎖避免死鎖檢測與解除死鎖檢測與解除死鎖1、預(yù)防死鎖、預(yù)防死鎖預(yù)防:預(yù)防:l通過設(shè)置某些限制條件,破壞導(dǎo)致死鎖的四個必通過設(shè)置某些限制條件,破壞導(dǎo)致死鎖的四個必要條件之一。要條件之一。l“互斥條件互斥條件”由資源的性質(zhì)決定。由資源的性質(zhì)決定。摒棄摒棄“請求和保持請求和保持”條件條件l在開始運行前(創(chuàng)建時),一次性分配給進程它在開始運行前(創(chuàng)建時),一次性分配給進程它所需的所需的“全部全

36、部”資源。資源。l簡單易實現(xiàn),安全性高;資源浪費。簡單易實現(xiàn),安全性高;資源浪費。摒棄摒棄“不可剝奪不可剝奪”條件條件l當進程有新的資源請求時,如果得不到滿足,要當進程有新的資源請求時,如果得不到滿足,要先釋放原先占有的資源,待以后重新申請。先釋放原先占有的資源,待以后重新申請。l等價于此進程等價于此進程“被剝奪被剝奪”了已經(jīng)占有的資源。了已經(jīng)占有的資源。l實現(xiàn)比較復(fù)雜,系統(tǒng)代價很高。實現(xiàn)比較復(fù)雜,系統(tǒng)代價很高。摒棄摒棄“循環(huán)等待循環(huán)等待”條件條件l把系統(tǒng)資源按類型排序,進程要按照資源的序號把系統(tǒng)資源按類型排序,進程要按照資源的序號遞增的次序提出資源申請。遞增的次序提出資源申請。l較上述兩種方

37、法的綜合性能要好;但系統(tǒng)配置資較上述兩種方法的綜合性能要好;但系統(tǒng)配置資源的序號要穩(wěn)定,固定的訪問順序不一定合理。源的序號要穩(wěn)定,固定的訪問順序不一定合理。例如:例如: 進程進程A占有占有3號資源,現(xiàn)在又申請?zhí)栙Y源,現(xiàn)在又申請5號資源號資源占有占有資源號小于申請資源號,此申請可以滿足。資源號小于申請資源號,此申請可以滿足。 進程進程B占有占有5號資源,現(xiàn)在又申請?zhí)栙Y源,現(xiàn)在又申請3號資源號資源由于由于53,所以此申請不能滿足。進程,所以此申請不能滿足。進程B要想得到要想得到3號資號資源,必須先放棄源,必須先放棄5號以及所有編號比號以及所有編號比3大的資源。大的資源。2、避免死鎖、避免死鎖避免死

38、鎖的方法:避免死鎖的方法: 在資源的動態(tài)分配過程中,用某種方法防止系統(tǒng)進入在資源的動態(tài)分配過程中,用某種方法防止系統(tǒng)進入不安全狀態(tài)。不安全狀態(tài)。安全狀態(tài):安全狀態(tài):l系統(tǒng)能按某種進程順序系統(tǒng)能按某種進程順序(P1,P2,P3),來為每個,來為每個進程進程Pi分配其所需資源,直至最大需求,使每個分配其所需資源,直至最大需求,使每個進程都可以順利完成。進程都可以順利完成。l反之,則系統(tǒng)處于不安全狀態(tài)。反之,則系統(tǒng)處于不安全狀態(tài)。l不安全狀態(tài)不一定發(fā)生死鎖,但死鎖一定屬于不安全狀不安全狀態(tài)不一定發(fā)生死鎖,但死鎖一定屬于不安全狀態(tài)。態(tài)。進程進程最大需求最大需求已分配已分配系統(tǒng)可用系統(tǒng)可用P1P2P31

39、0495223系統(tǒng)資源總數(shù):系統(tǒng)資源總數(shù):12不不32利用銀行家算法避免死鎖利用銀行家算法避免死鎖l銀行家算法的實質(zhì)就是要設(shè)法保證系統(tǒng)動態(tài)分配資銀行家算法的實質(zhì)就是要設(shè)法保證系統(tǒng)動態(tài)分配資源后仍然保持安全狀態(tài),從而避免死鎖的發(fā)生。源后仍然保持安全狀態(tài),從而避免死鎖的發(fā)生。l要求進程預(yù)先告知自己的最大資源需求,并且假設(shè)要求進程預(yù)先告知自己的最大資源需求,并且假設(shè)系統(tǒng)擁有固定的資源總量。系統(tǒng)擁有固定的資源總量。l數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu): 可用資源向量可用資源向量Available 最大需求矩陣最大需求矩陣Max l分配矩陣分配矩陣Allocation 需求矩陣需求矩陣Need 資源請求向量資源請求向量

40、Requestil安全性算法:工作向量安全性算法:工作向量Work、FinishMaxAllocationNeedAvailableA 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進程進程資源資源某時刻資源分配情況某時刻資源分配情況5 3 27 4 37 4 510 4 710 5 7A B CWork AllocationA B CA B CA B Ctruetruetruetruetrue2

41、 0 02 1 10 0 23 0 20 1 01 2 20 1 14 3 16 0 07 4 33 3 25 3 27 4 37 4 510 4 7P1P3P4P2P0FinishAllocationNeedWork進程進程資源資源安全序列安全序列3 0 20 2 02 3 0(2)若此時若此時P1請求資源,發(fā)出請求向量請求資源,發(fā)出請求向量Request1(1,0,2)系統(tǒng)按系統(tǒng)按銀行家算法銀行家算法進行檢查:進行檢查: Request1(1,0,2)=Need1(1,2,2) Request1(1,0,2)=Available(3,3,2) 系系統(tǒng)先假定可為統(tǒng)先假定可為P1分配資源,并修

42、改向量的值。分配資源,并修改向量的值。 再利用再利用安全性算法安全性算法檢查此時系統(tǒng)是否安全。檢查此時系統(tǒng)是否安全。 5 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進程進程資源資源安全序列安全序列A B CA B CA B CA B C3 3 2資源總數(shù)資源總數(shù) 1

43、0 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進程進程資源資源某時刻資源分配情況某時刻資源分配情況3 0 20 2 02 3 0(3)若此時)若此時P4請求資源,發(fā)出請求向量請求資源,發(fā)出請求向量Request4(3,3,0)系統(tǒng)按系統(tǒng)按銀行家算法銀行家算法進行檢查:進行檢查: Request4(3,3,0)Available(2,3,0) 因此,讓因此,讓P4等待。等待。A B CA B CA B CA B

44、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進程進程資源資源某時刻資源分配情況某時刻資源分配情況3 0 20 2 02 3 0(4)若此時)若此時P0請求資源,發(fā)出請求向量請求資源,發(fā)出請求向量Request0(0,2,0)系統(tǒng)按系統(tǒng)按銀行家算法銀行家算法進行檢查:進行檢查: Request0(0,2,0)=Need0(7,4,3) Request0(0,2,0)=Availa

45、ble(2,3,0) 系統(tǒng)系統(tǒng)暫時先假定暫時先假定可為可為P0分配資源,并修改有關(guān)數(shù)據(jù)分配資源,并修改有關(guān)數(shù)據(jù) 進行進行安全性檢查安全性檢查,Available(2,1,0)已不能滿足任何進已不能滿足任何進程的需要,故系統(tǒng)進入不安全狀態(tài),此時系統(tǒng)不分配資程的需要,故系統(tǒng)進入不安全狀態(tài),此時系統(tǒng)不分配資源源 。0 3 07 2 32 1 01. 銀行家算法中的數(shù)據(jù)結(jié)構(gòu)銀行家算法中的數(shù)據(jù)結(jié)構(gòu) (1) 可利用資源向量Available。這是一個含有m個元素的數(shù)組,其中的每一個元素代表一類可利用的資源數(shù)目,其初始值是系統(tǒng)中所配置的該類全部可用資源的數(shù)目,其數(shù)值隨該類資源的分配和回收而動態(tài)地改變。如果Availablej=K,則表示系統(tǒng)中現(xiàn)有Rj類資源K個。 (2) 最

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論