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

下載本文檔

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

文檔簡介

2023/1/311操作系統(tǒng)

OperatingSystems

操作系統(tǒng)課程組南京郵電大學(xué)WINDOWSUNIXLINUXOS2VxWorksMacOS2023/1/312第三章進(jìn)程管理與調(diào)度

3.1中央處理器

3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/313第三章進(jìn)程管理與調(diào)度

3.1中央處理器

3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/3143.1中央處理器●任何系統(tǒng)軟件都是硬件功能的延伸●操作系統(tǒng)直接依賴于硬件條件●操作系統(tǒng)的硬件環(huán)境以較分散的形式同各種管理模塊相結(jié)合2023/1/3153.1中央處理器1、CPU的構(gòu)成與基本工作方式

中央處理器(CentralProcessingUnit,CPU)是一臺計算機(jī)的運算核心和控制核心。CPU、內(nèi)部存儲器和輸入/輸出設(shè)備是電子計算機(jī)三大核心部件。其功能主要是解釋計算機(jī)指令以及處理計算機(jī)軟件中的數(shù)據(jù)。2023/1/3163.1中央處理器1、CPU的構(gòu)成與基本工作方式

處理器由運算器、控制器、一系列的寄存器以及高速緩存構(gòu)成。1)運算器

實現(xiàn)指令中的算術(shù)運算和邏輯運算,是計算機(jī)計算

的核心。2)控制器

負(fù)責(zé)控制程序運行的流程,包括取指令、維護(hù)CPU

狀態(tài)、CPU與內(nèi)存的交互等等。2023/1/3173.1中央處理器1、CPU的構(gòu)成與基本工作方式3)寄存器寄存器是指令在CPU內(nèi)部作處理的過程中暫存數(shù)據(jù)、地址以及指令信息的存儲設(shè)備。在計算機(jī)的存儲系統(tǒng)中它具有最快的訪問速度。(寄存器>緩存>內(nèi)存>外存)用戶可見寄存器——高級語言編譯器通過算法分配并使用之,以減少程序訪問主存次數(shù)??刂萍拇嫫鳌糜诳刂铺幚砥鞯牟僮?,由OS的特權(quán)代碼使用,以控制其它程序的執(zhí)行。寄存器2023/1/3183.1中央處理器1、CPU的構(gòu)成與基本工作方式4)高速緩存高速緩存處于CPU和物理內(nèi)存之間,一般由控制器中的內(nèi)存管理單元(MMU:MemoryManagementUnit)管理。

訪問速度快于內(nèi)存,低于寄存器。利用程序局部性原理使得高速指令處理和低速內(nèi)存訪問得以匹配,從而提高CPU的效率

所謂程序局部性原理是指在一段較短時間內(nèi),程序的執(zhí)行僅限于某個部分。表現(xiàn)為兩個方面:●時間局限性:如果某條指令被執(zhí)行,則不久以后該指令很可能再次被執(zhí)行。產(chǎn)生時間局限性的主要原因是程序中有大量的循環(huán)操作?!窨臻g局限性:一旦程序訪問了某個內(nèi)存單元,不久以后,其附近的內(nèi)存單元也要被訪問,即程序在一段時間內(nèi)所訪問的存儲器空間可能集中在一定的范圍之內(nèi)。2023/1/3193.1中央處理器2、特權(quán)指令與非特權(quán)指令●特權(quán)指令:只能由操作系統(tǒng)使用的指令●非特權(quán)指令:操作系統(tǒng)和用戶都能使用的指令具體特權(quán)指令如:啟動I/O設(shè)備、設(shè)置時鐘、控制中斷屏蔽位、清內(nèi)存、建立存儲鍵,加載程序狀態(tài)字等。CPU如何知道當(dāng)前運行的是操作系統(tǒng)還是一般應(yīng)用軟件?(即當(dāng)前能否運行特權(quán)指令?)——有賴于處理器狀態(tài)的標(biāo)識2023/1/31103.1中央處理器3、處理器的狀態(tài)分類原則:根據(jù)運行程序?qū)Y源和機(jī)器指令的使用權(quán)限將處理器設(shè)置為不同狀態(tài)管態(tài):操作系統(tǒng)管理程序運行的狀態(tài),具有較高的特權(quán)級別,又稱為特權(quán)態(tài)(特態(tài))、系統(tǒng)態(tài)目態(tài):用戶程序運行時的狀態(tài),較低的特權(quán)級別,又稱為普通態(tài)(普態(tài))、用戶態(tài)(注意:有些系統(tǒng)將處理器狀態(tài)劃分核心狀態(tài),管理狀態(tài)和用戶程序狀態(tài)(目標(biāo)狀態(tài))三種)2023/1/31113.1中央處理器3、處理器的狀態(tài)處理器處于管態(tài)時:√全部指令(包括特權(quán)指令)可以執(zhí)行√可使用所有資源√并具有改變處理器狀態(tài)的能力處理器處于目態(tài)時:√只有非特權(quán)指令能執(zhí)行●特權(quán)級別越高,可以運行指令集合越大●高特權(quán)級別對應(yīng)的可運行指令集合包含低特權(quán)級的2023/1/31123.1中央處理器3、處理器的狀態(tài)實例:x86系列處理器386、486、Pentium系列都支持4個處理器特權(quán)級別(特權(quán)環(huán):R0、R1、R2和R3)從R0到R3特權(quán)能力依次降低R0相當(dāng)于系統(tǒng)的管態(tài)R3相當(dāng)于目態(tài)R1和R2則介于兩者之間,它們能夠運行的指令集合具有包含關(guān)系2023/1/31133.1中央處理器3、處理器的狀態(tài)目態(tài)→管態(tài)其轉(zhuǎn)換的唯一途徑是通過中斷管態(tài)→目態(tài)可用設(shè)置PSW(修改程序狀態(tài)字)可實現(xiàn)2023/1/31143.1中央處理器3、處理器的狀態(tài)狀態(tài)切換(模式切換)舉例——1)假設(shè)CPU運行在用戶態(tài)(目態(tài)),當(dāng)發(fā)生中斷時,暫停正在執(zhí)行的用戶進(jìn)程,CPU切換到內(nèi)核狀態(tài)(管態(tài)),去執(zhí)行中斷處理程序,這就是一次模式切換(狀態(tài)切換)2)接著,內(nèi)核在核心態(tài)(管態(tài))運行該中斷處理程序3)當(dāng)處理完成后,CPU自己回到用戶態(tài)(目態(tài)),繼續(xù)執(zhí)行剛剛被中斷的進(jìn)程2023/1/31153.1中央處理器4、程序狀態(tài)字

程序狀態(tài)寄存器PSW是計算機(jī)系統(tǒng)的核心部件——控制器的一部分,PSW用來存放兩類信息:一類是體現(xiàn)當(dāng)前指令執(zhí)行結(jié)果的各種狀態(tài)信息,稱為狀態(tài)標(biāo)志,如有無進(jìn)位(CF位),有無溢出(OF位),結(jié)果正負(fù)(SF位)等;另一類是存放控制信息,稱為控制狀態(tài),如允許中斷(IF位),方向標(biāo)志(DF)等。2023/1/31163.1中央處理器4、程序狀態(tài)字PSW用來控制指令執(zhí)行順序并保留和指示與程序有關(guān)的系統(tǒng)狀態(tài),主要作用是實現(xiàn)程序狀態(tài)的保護(hù)和恢復(fù)。

每個進(jìn)程都有一個與其執(zhí)行相關(guān)的PSW,每個處理器都設(shè)置一個PSW寄存器。進(jìn)程占有處理器執(zhí)行,它的PSW將占有PSW寄存器。2023/1/3117第三章進(jìn)程管理與調(diào)度

3.1中央處理器

3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/3118第三章進(jìn)程管理與調(diào)度

3.1中央處理器 3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/31193.2中斷1、中斷的概念●中斷是指CPU對系統(tǒng)中或系統(tǒng)外發(fā)生異步事件的響應(yīng)(異步事件是指無一定時序關(guān)系的隨機(jī)發(fā)生事件)●

CPU暫停正在執(zhí)行的程序,保留現(xiàn)場后自動轉(zhuǎn)去執(zhí)行相應(yīng)事件的處理程序,處理完成后返回斷點,繼續(xù)執(zhí)行被打斷的程序?!瘛爸袛唷泵Q源于:當(dāng)異步事件發(fā)生后,打斷了對當(dāng)前程序的執(zhí)行而轉(zhuǎn)去處理該異步事件,直到處理完了后,再轉(zhuǎn)回原程序中斷點繼續(xù)執(zhí)行。2023/1/31203.2中斷1、中斷的概念2023/1/31213.2中斷2、中斷的分類——從中斷的性質(zhì)和激活的手段來分(IBM):●強(qiáng)迫性中斷正在運行的程序所不期望的,由于某種硬件故障或外部請求引起的●自愿性中斷用戶在程序中有意識安排的中斷,是由于用戶在編制程序時因為要求操作系統(tǒng)提供服務(wù),有意使用“訪管”指令或系統(tǒng)調(diào)用,使中斷發(fā)生2023/1/31223.2中斷2、中斷的分類外中斷:中斷(時鐘中斷、鍵盤中斷、設(shè)備中斷…)內(nèi)中斷:異常(錯誤事件、地址越界…)信號:用于內(nèi)核對進(jìn)程的中斷軟件中斷:用于硬中斷服務(wù)程序的處理可屏蔽中斷不可屏蔽中斷硬中斷軟中斷按事件來源和實現(xiàn)手段分類2023/1/31233.2中斷2、中斷的分類關(guān)于中斷(外中斷),請大家記住4句話——1)中斷是由與現(xiàn)行指令無關(guān)的中斷信號觸發(fā)的(異步的)2)中斷的發(fā)生與CPU處在用戶模式或內(nèi)核模式無關(guān)3)在兩條機(jī)器指令之間才可響應(yīng)中斷4)一般來說,中斷處理程序提供的服務(wù)不是為當(dāng)前進(jìn)程所需的2023/1/31243.2中斷2、中斷的分類關(guān)于異常(內(nèi)中斷),請大家記住3句話——1)異常是由處理器正在執(zhí)行現(xiàn)行指令而引起的2)一條指令執(zhí)行期間允許響應(yīng)異常3)異常處理程序提供的服務(wù)是為當(dāng)前進(jìn)程所用的2023/1/3125第三章進(jìn)程管理與調(diào)度

3.1中央處理器

3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/3126第三章進(jìn)程管理與調(diào)度

3.1中央處理器 3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/31273.3進(jìn)程及其實現(xiàn)1、進(jìn)程的定義●進(jìn)程是為了描述程序在并發(fā)執(zhí)行時對系統(tǒng)資源的共享,所需的一個描述程序執(zhí)行時動態(tài)特征的概念●

定義:進(jìn)程是具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運行活動,是系統(tǒng)進(jìn)行資源分配、調(diào)度和保護(hù)的獨立單位2023/1/31283.3進(jìn)程及其實現(xiàn)2、進(jìn)程的類型和特性1)進(jìn)程分類●系統(tǒng)進(jìn)程(在核心態(tài)下執(zhí)行操作系統(tǒng)代碼,如作業(yè)調(diào)度、各種資源管理和控制等)●用戶進(jìn)程(在用戶態(tài)下執(zhí)行用戶程序)(系統(tǒng)進(jìn)程一般優(yōu)先于用戶進(jìn)程)2023/1/31293.3進(jìn)程及其實現(xiàn)2、進(jìn)程的類型和特性2)進(jìn)程的特征●動態(tài)性:進(jìn)程是程序在處理機(jī)上的一次執(zhí)行過程,有一定生命周期●并發(fā)性:多個進(jìn)程可同時存在于內(nèi)存中,能在一段時間內(nèi)同時運行●獨立性:進(jìn)程是一個能獨立運行的基本單位,也是資源分配的基本單位●制約性:進(jìn)程間因為對資源的爭用而相互制約●異步性:進(jìn)程按照各自獨立的、不可預(yù)知的速度推進(jìn)●結(jié)構(gòu)性:進(jìn)程包含了相關(guān)的數(shù)據(jù)和程序,同時還有一個稱為“進(jìn)程控制塊”的數(shù)據(jù)結(jié)構(gòu)來記錄進(jìn)程的動態(tài)變化過程。因此,進(jìn)程的組成三要素為“程序”、“數(shù)據(jù)”和“進(jìn)程控制塊(PCB)”2023/1/31303.3進(jìn)程及其實現(xiàn)3、進(jìn)程與程序的區(qū)別

進(jìn)程更能真實地描述并發(fā),而程序不能

進(jìn)程是由程序和數(shù)據(jù)和進(jìn)程控制塊三部分組成的

程序是靜態(tài)的,進(jìn)程是動態(tài)的進(jìn)程有生命周期,有誕生有消亡,短暫的;而程序是相對長久的一個程序可對應(yīng)多個進(jìn)程,反之亦然

進(jìn)程具有創(chuàng)建其他進(jìn)程的功能,而程序沒有2023/1/31313.3進(jìn)程及其實現(xiàn)4、進(jìn)程的狀態(tài)和轉(zhuǎn)換1)三態(tài)模型(1)運行態(tài)(Running):進(jìn)程占有CPU,并在CPU上運行(2)就緒態(tài)(Ready):一個進(jìn)程已經(jīng)具備運行條件,但由于無CPU暫時不能運行的狀態(tài)(當(dāng)調(diào)度給其CPU時,立即可以運行)(3)等待態(tài)(Blocked):又叫阻塞態(tài)、封鎖態(tài)、睡眠態(tài)指進(jìn)程因等待某種事件的發(fā)生而暫時不能運行的狀態(tài)(即使CPU空閑,該進(jìn)程也不可運行)2023/1/31323.3進(jìn)程及其實現(xiàn)4、進(jìn)程的狀態(tài)和轉(zhuǎn)換1)三態(tài)模型2023/1/31333.3進(jìn)程及其實現(xiàn)4、進(jìn)程的狀態(tài)和轉(zhuǎn)換1)三態(tài)模型就緒-->運行調(diào)度程序選擇一個新的進(jìn)程運行2023/1/31343.3進(jìn)程及其實現(xiàn)4、進(jìn)程的狀態(tài)和轉(zhuǎn)換1)三態(tài)模型運行-->就緒●運行進(jìn)程用完了時間片●運行進(jìn)程被中斷,因為一高優(yōu)先級進(jìn)程處于就緒狀態(tài)2023/1/31353.3進(jìn)程及其實現(xiàn)4、進(jìn)程的狀態(tài)和轉(zhuǎn)換1)三態(tài)模型運行-->等待●當(dāng)一進(jìn)程必須等待時 ●對一資源的訪問尚不能進(jìn)行●初始化I/O且必須等待結(jié)果●等待某一進(jìn)程提供輸入2023/1/31363.3進(jìn)程及其實現(xiàn)4、進(jìn)程的狀態(tài)和轉(zhuǎn)換1)三態(tài)模型等待-->就緒當(dāng)所等待的事件發(fā)生時2023/1/31373.3進(jìn)程及其實現(xiàn)4、進(jìn)程的狀態(tài)和轉(zhuǎn)換2)五態(tài)模型和三態(tài)模型相比,增加了兩個狀態(tài),分別是——(1)新建狀態(tài)①

操作系統(tǒng)已完成為創(chuàng)建一進(jìn)程所必要的工作已構(gòu)造了進(jìn)程標(biāo)識符已創(chuàng)建了管理進(jìn)程所需的表格②

但還沒有允許執(zhí)行該進(jìn)程(尚未同意運行,即尚未進(jìn)入內(nèi)存)

因為資源有限2023/1/31383.3進(jìn)程及其實現(xiàn)4、進(jìn)程的狀態(tài)和轉(zhuǎn)換2)五態(tài)模型和三態(tài)模型相比,增加了兩個狀態(tài),分別是——(2)終止?fàn)顟B(tài)進(jìn)程運行終止后進(jìn)程移入該狀態(tài)進(jìn)程在此狀態(tài)不再有執(zhí)行資格表格和其它信息暫時由輔助程序保留一旦其他進(jìn)程完成了對終止態(tài)進(jìn)程的信息抽取之后,系統(tǒng)將刪除該進(jìn)程。2023/1/31393.3進(jìn)程及其實現(xiàn)4、進(jìn)程的狀態(tài)和轉(zhuǎn)換2)五態(tài)模型2023/1/31403.3進(jìn)程及其實現(xiàn)4、進(jìn)程的狀態(tài)和轉(zhuǎn)換2)五態(tài)模型從三態(tài)模型到五態(tài)模型——NULL→新建態(tài):創(chuàng)建一個子進(jìn)程。新建態(tài)→就緒態(tài):系統(tǒng)完成了進(jìn)程創(chuàng)建操作,且當(dāng)前系統(tǒng)的性能和內(nèi)存的容量均允許。運行態(tài)→終止態(tài):一個進(jìn)程到達(dá)自然結(jié)束點,或出現(xiàn)了無法克服的錯誤,或被操作系統(tǒng)所終結(jié),或被其他有終止權(quán)的進(jìn)程所終結(jié)。終止態(tài)→NULL:完成善后操作。就緒態(tài)→終止態(tài):某些操作系統(tǒng)允許父進(jìn)程終結(jié)子進(jìn)程。等待態(tài)→終止態(tài):某些操作系統(tǒng)允許父進(jìn)程終結(jié)子進(jìn)程。2023/1/31413.3進(jìn)程及其實現(xiàn)4、進(jìn)程的狀態(tài)和轉(zhuǎn)換3)七態(tài)模型

比五態(tài)模型增加了“掛起”狀態(tài)為什么要有“掛起”狀態(tài)?

由于進(jìn)程的不斷創(chuàng)建,系統(tǒng)資源已不能滿足進(jìn)程運行的要求,就必須把某些進(jìn)程掛起(suspend),對換到磁盤鏡像區(qū)中,暫時不參與進(jìn)程調(diào)度,起到平滑系統(tǒng)操作負(fù)荷的目的。2023/1/31423.3進(jìn)程及其實現(xiàn)4、進(jìn)程的狀態(tài)和轉(zhuǎn)換3)七態(tài)模型2023/1/31433.3進(jìn)程及其實現(xiàn)4、進(jìn)程的狀態(tài)和轉(zhuǎn)換3)七態(tài)模型

掛起(Suspend):把一個進(jìn)程從內(nèi)存轉(zhuǎn)到外存可能有以下幾種情況:●阻塞→阻塞掛起:沒有進(jìn)程處于就緒狀態(tài)或就緒進(jìn)程要求更多內(nèi)存資源時,發(fā)生這種轉(zhuǎn)換,以提交新進(jìn)程或運行就緒進(jìn)程●就緒→就緒掛起:當(dāng)有高優(yōu)先級阻塞(系統(tǒng)認(rèn)為會很快就緒的)進(jìn)程和低優(yōu)先級就緒進(jìn)程時,系統(tǒng)會掛起低優(yōu)先級就緒進(jìn)程●運行→就緒掛起:對搶占式系統(tǒng),當(dāng)有高優(yōu)先級阻塞掛起進(jìn)程因事件出現(xiàn)而進(jìn)入就緒掛起時,系統(tǒng)可能會把運行進(jìn)程轉(zhuǎn)到就緒掛起狀態(tài)2023/1/31443.3進(jìn)程及其實現(xiàn)4、進(jìn)程的狀態(tài)和轉(zhuǎn)換3)七態(tài)模型

激活(Activate):把一個進(jìn)程從外存轉(zhuǎn)到內(nèi)存;可能有以下幾種情況:●就緒掛起→就緒:沒有就緒進(jìn)程或掛起就緒進(jìn)程優(yōu)先級高于就緒進(jìn)程時,發(fā)生轉(zhuǎn)換●阻塞掛起→阻塞:當(dāng)一個進(jìn)程釋放足夠內(nèi)存時,系統(tǒng)會把一個高優(yōu)先級阻塞掛起(系統(tǒng)認(rèn)為會很快出現(xiàn)所等待的事件)進(jìn)程轉(zhuǎn)換為阻塞狀態(tài)。2023/1/31453.3進(jìn)程及其實現(xiàn)5、進(jìn)程控制塊1)定義●進(jìn)程控制塊(ProcessControlBlock)是系統(tǒng)為了管理進(jìn)程設(shè)置的一個專門的數(shù)據(jù)結(jié)構(gòu),用它來記錄進(jìn)程的外部特征,描述進(jìn)程的運動變化過程●系統(tǒng)利用PCB來控制和管理進(jìn)程,所以PCB是系統(tǒng)感知進(jìn)程存在的唯一標(biāo)志●進(jìn)程與PCB是一一對應(yīng)的2023/1/31463.3進(jìn)程及其實現(xiàn)5、進(jìn)程控制塊1)定義2023/1/31473.3進(jìn)程及其實現(xiàn)5、進(jìn)程控制塊2)進(jìn)程控制塊的構(gòu)成(1)進(jìn)程描述信息●進(jìn)程標(biāo)識符(processID),唯一,通常是一個整數(shù)●進(jìn)程名,通?;诳蓤?zhí)行文件名(不唯一)●用戶標(biāo)識符(userID)●進(jìn)程組關(guān)系2023/1/31483.3進(jìn)程及其實現(xiàn)5、進(jìn)程控制塊2)進(jìn)程控制塊的構(gòu)成(2)進(jìn)程控制信息●當(dāng)前狀態(tài)●優(yōu)先級(priority)●代碼執(zhí)行入口地址●程序的外存地址●進(jìn)程間同步和通信●阻塞原因●進(jìn)程的隊列指針●進(jìn)程的消息隊列指針●運行統(tǒng)計信息(執(zhí)行時間、頁面調(diào)度)2023/1/31493.3進(jìn)程及其實現(xiàn)5、進(jìn)程控制塊2)進(jìn)程控制塊的構(gòu)成(3)所擁有的資源和使用情況●虛擬地址空間的現(xiàn)狀●占用內(nèi)存的大?。?)CPU現(xiàn)場保護(hù)信息●寄存器值(通用、程序計數(shù)器PC、狀態(tài)PSW,地址包括棧指針)●指向賦予該進(jìn)程的段/頁表的指針2023/1/31503.3進(jìn)程及其實現(xiàn)5、進(jìn)程控制塊3)進(jìn)程控制塊的組織●系統(tǒng)把所有PCB組織在一起,并把它們放在內(nèi)存的固定區(qū)域,就構(gòu)成了PCB表?!馪CB表的大小決定了系統(tǒng)中最多可同時

存在的進(jìn)程個數(shù),稱為系統(tǒng)的并發(fā)度。2023/1/31513.3進(jìn)程及其實現(xiàn)6、進(jìn)程的要素1)進(jìn)程的靜態(tài)組成進(jìn)程程序進(jìn)程數(shù)據(jù)棧●用于系統(tǒng)調(diào)用、過程調(diào)用時的參數(shù)存儲和傳遞進(jìn)程控制塊PCB(進(jìn)程屬性)●處于核心段●

用戶進(jìn)程不能直接訪問、修改自己的PCB2023/1/31523.3進(jìn)程及其實現(xiàn)6、進(jìn)程的要素2)存儲器中的進(jìn)程映像2023/1/31533.3進(jìn)程及其實現(xiàn)6、進(jìn)程的要素3)進(jìn)程上下文(1)進(jìn)程上下文的概念:進(jìn)程本身+運行環(huán)境對進(jìn)程執(zhí)行活動全過程的靜態(tài)描述由進(jìn)程的用戶地址空間內(nèi)容、硬件寄存器內(nèi)容及與該進(jìn)程相關(guān)的核心數(shù)據(jù)結(jié)構(gòu)組成2023/1/31543.3進(jìn)程及其實現(xiàn)6、進(jìn)程的要素3)進(jìn)程上下文(2)進(jìn)程上下文的分類①用戶級上下文:進(jìn)程的用戶地址空間(包括用戶棧各層次),包括用戶正文段、用戶數(shù)據(jù)段和用戶棧②寄存器級上下文:PSW寄存器、處理器狀態(tài)寄存器、棧指針、通用寄存器的值③系統(tǒng)級上下文:●靜態(tài)部分(PCB和資源表格)●動態(tài)部分:核心棧(核心過程的棧結(jié)構(gòu),不同進(jìn)程在調(diào)用相同核心過程時有不同核心棧)2023/1/31553.3進(jìn)程及其實現(xiàn)6、進(jìn)程的要素3)進(jìn)程上下文(3)進(jìn)程上下文的切換

進(jìn)程切換是讓處于運行態(tài)的進(jìn)程中斷運行,讓出處理器,這時要做一次進(jìn)程上下文切換、即保存老進(jìn)程狀態(tài)而裝入被保護(hù)了的新進(jìn)程的狀態(tài),以便新進(jìn)程運行。

2023/1/31563.3進(jìn)程及其實現(xiàn)6、進(jìn)程的要素3)進(jìn)程上下文(3)進(jìn)程上下文的切換——進(jìn)程切換的步驟①保存被中斷進(jìn)程的處理器現(xiàn)場信息。②修改被中斷進(jìn)程的進(jìn)程控制塊的有關(guān)信息,如進(jìn)程狀態(tài)等。③把被中斷進(jìn)程的進(jìn)程控制塊加入有關(guān)隊列。④選擇下一個占有處理器運行的進(jìn)程。⑤修改被選中進(jìn)程的進(jìn)程控制塊的有關(guān)信息。⑥根據(jù)被選中進(jìn)程設(shè)置操作系統(tǒng)用到的地址轉(zhuǎn)換和存儲保護(hù)信息。⑦根據(jù)被選中進(jìn)程恢復(fù)處理器現(xiàn)場。2023/1/3157第三章進(jìn)程管理與調(diào)度

3.1中央處理器

3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/3158第三章進(jìn)程管理與調(diào)度

3.1中央處理器 3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/31593.4進(jìn)程的控制1、進(jìn)程控制的概念

處理器管理的一個主要工作是對進(jìn)程的控制。進(jìn)程控制是系統(tǒng)使用一些具有特定功能的程序段來創(chuàng)建、撤消進(jìn)程以及完成進(jìn)程各狀態(tài)間的轉(zhuǎn)換,從而達(dá)到多進(jìn)程高效率并發(fā)執(zhí)行和協(xié)調(diào)、實現(xiàn)資源共享的目的。

包括:創(chuàng)建進(jìn)程、阻塞進(jìn)程、喚醒進(jìn)程、掛起進(jìn)程、激活進(jìn)程、終止進(jìn)程和撤銷進(jìn)程等2023/1/31603.4進(jìn)程的控制2、原語的概念●

上述這些控制和管理功能是由操作系統(tǒng)的原語來實現(xiàn)?!?/p>

原語(Primitive)是在管態(tài)下執(zhí)行的一個過程。●

原語在執(zhí)行過程中不允許被中斷,是一個不可分割的

基本單位,原語的執(zhí)行是順序的而不可能是并發(fā)的?!褚环N原語的實現(xiàn)方法是以系統(tǒng)調(diào)用方式提供原語接

口,且采用屏蔽中斷的方式來實現(xiàn)原語功能,以保證

原語操作不被打斷的特性。2023/1/31613.4進(jìn)程的控制3、進(jìn)程的創(chuàng)建1)進(jìn)程創(chuàng)建的方式(1)由系統(tǒng)程序模塊統(tǒng)一創(chuàng)建,例如在批處理系統(tǒng)

中,由操作系統(tǒng)的作業(yè)調(diào)度程序為用戶作業(yè)創(chuàng)

建相應(yīng)的進(jìn)程以完成用戶作業(yè)所要求的功能。(2)由父進(jìn)程創(chuàng)建,例如在層次結(jié)構(gòu)的系統(tǒng)中,父

進(jìn)程創(chuàng)建子進(jìn)程以完成并行工作。2023/1/31623.4進(jìn)程的控制3、進(jìn)程的創(chuàng)建2)進(jìn)程創(chuàng)建來源于以下事件——●提交一個批處理作業(yè)●在終端上交互式的登錄●操作系統(tǒng)創(chuàng)建一個服務(wù)進(jìn)程●存在的進(jìn)程孵化(spawn)新的進(jìn)程

……2023/1/31633.4進(jìn)程的控制3、進(jìn)程的創(chuàng)建3)進(jìn)程的創(chuàng)建過程(1)父進(jìn)程(ParentProcess)創(chuàng)建子進(jìn)程(ChildProcess)

,系統(tǒng)在進(jìn)程表中增加一項,并從PCB池中取一個空白PCB。(2)為新創(chuàng)建的進(jìn)程映像分配地址空間。傳遞環(huán)境變量,構(gòu)造共享地址空間。(3)為新進(jìn)程分配資源,除內(nèi)存空間外,還有其他資源。2023/1/31643.4進(jìn)程的控制3、進(jìn)程的創(chuàng)建3)進(jìn)程的創(chuàng)建過程(4)查找輔存,找到進(jìn)程正文段并裝到正文區(qū)。(5)初始化進(jìn)程控制塊,為新進(jìn)程分配進(jìn)程標(biāo)識符,

初始化PSW。(6)加入就緒進(jìn)程隊列,將進(jìn)程投入運行。(7)通知操作系統(tǒng)的某些模塊,如記賬程序、性能監(jiān)

控程序。2023/1/31653.4進(jìn)程的控制3、進(jìn)程的創(chuàng)建4)Linux進(jìn)程創(chuàng)建實例●在Linux中,只有0進(jìn)程是在系統(tǒng)引導(dǎo)時被創(chuàng)建的,在系統(tǒng)初啟時由0進(jìn)程創(chuàng)建1進(jìn)程,1進(jìn)程成為系統(tǒng)中的始祖進(jìn)程?!?/p>

Linux利用fork()為每個終端創(chuàng)建一個子進(jìn)程為用戶服務(wù),如等待用戶登錄、執(zhí)行SHELL命令解釋程序等,每個終端進(jìn)程又可利用fork()來創(chuàng)建其子進(jìn)程,從而形成一棵進(jìn)程樹??梢哉f,系統(tǒng)中除0進(jìn)程外的所有進(jìn)程都是用fork()創(chuàng)建的?!裣到y(tǒng)調(diào)用fork()的源代碼參見:

/USR/SRC/LINUX/KERNEL/FORK.C

2023/1/31663.4進(jìn)程的控制3、進(jìn)程的創(chuàng)建4)Linux進(jìn)程創(chuàng)建實例實例:編寫一段程序,使用系統(tǒng)調(diào)用fork()創(chuàng)建兩個子進(jìn)程。當(dāng)此程序運行時,在系統(tǒng)中有一個父進(jìn)程和兩個子進(jìn)程活動。讓每一個進(jìn)程在屏幕上顯示不同的字符串:子進(jìn)程顯示'daughter…'及'son……',父進(jìn)程顯示'parent……'。2023/1/31673.4進(jìn)程的控制3、進(jìn)程的創(chuàng)建4)Linux進(jìn)程創(chuàng)建實例實例:(1)所涉及的系統(tǒng)調(diào)用

fork

()創(chuàng)建一個新進(jìn)程

系統(tǒng)調(diào)用格式:pid=fork

(

)

參數(shù)定義:intfork

()

fork

()返回值意義如下:

0:在子進(jìn)程中,pid變量保存的fork

()返回值為0,表示

當(dāng)前進(jìn)程是子進(jìn)程。

>0:在父進(jìn)程中,pid變量保存的fork

()返回值為子進(jìn)程的

id值(進(jìn)程唯一標(biāo)識符)。

-1:創(chuàng)建失敗。2023/1/31683.4進(jìn)程的控制3、進(jìn)程的創(chuàng)建4)Linux進(jìn)程創(chuàng)建實例實例:(1)所涉及的系統(tǒng)調(diào)用

fork

()創(chuàng)建一個新進(jìn)程

如果fork()調(diào)用成功,它向父進(jìn)程返回子進(jìn)程的PID,并向子進(jìn)程返回0,即fork()

被調(diào)用了一次,但返回了兩次。此時OS在內(nèi)存中建立一個新進(jìn)程,所建的新進(jìn)程是調(diào)用fork()父進(jìn)程(parentprocess)的副本,稱為子進(jìn)程(childprocess)。

子進(jìn)程繼承了父進(jìn)程的許多特性,并具有與父進(jìn)程完全相同的用戶級上下文。父進(jìn)程與子進(jìn)程并發(fā)執(zhí)行。2023/1/31693.4進(jìn)程的控制3、進(jìn)程的創(chuàng)建4)Linux進(jìn)程創(chuàng)建實例實例:#include<stdio.h>main(){intp1,p2,i;while((p1=fork())==-1);/*創(chuàng)建子進(jìn)程p1*/if(p1==0)for(i=0;i<10;i++)printf("daughter%d\n",i);else{while((p2=fork())==-1);/*創(chuàng)建子進(jìn)程p2*/if(p2==0)for(i=0;i<10;i++)printf("son%d\n",i);elsefor(i=0;i<10;i++)printf("parent%d\n",i);}}2023/1/31703.4進(jìn)程的控制4、進(jìn)程的阻塞和喚醒1)進(jìn)程阻塞●阻塞原語在一個進(jìn)程期待某一事件(如

鍵盤輸入數(shù)據(jù)、其他進(jìn)程發(fā)來的數(shù)據(jù)等)

發(fā)生,但發(fā)生條件尚不具備,被該進(jìn)程

調(diào)用來阻塞自己;●阻塞原語在阻塞一個進(jìn)程時,由于該進(jìn)

程正處于執(zhí)行狀態(tài),故應(yīng)先中斷處理機(jī)

和保存該進(jìn)程的CPU現(xiàn)場,保存現(xiàn)場信息到PSW;●

然后,將被阻塞進(jìn)程置“阻塞”狀態(tài)后插

入等待隊列中,再轉(zhuǎn)進(jìn)程調(diào)度程序選擇

新的就緒進(jìn)程投入運行。2023/1/31713.4進(jìn)程的控制4、進(jìn)程的阻塞和喚醒1)進(jìn)程阻塞進(jìn)程阻塞的具體步驟是——(1)停止進(jìn)程執(zhí)行,保存現(xiàn)場信息到PSW(2)修改PCB的有關(guān)內(nèi)容,如進(jìn)程狀態(tài)由運行改為等待(3)把修改狀態(tài)后的PCB加入相應(yīng)的等待隊列2023/1/31723.4進(jìn)程的控制4、進(jìn)程的阻塞和喚醒2)進(jìn)程喚醒●一種是由系統(tǒng)進(jìn)程喚醒。系統(tǒng)進(jìn)程統(tǒng)一控制事件的發(fā)生并將“事件發(fā)生”這一消息通知等待進(jìn)程,從而使得該進(jìn)程因等待事件已發(fā)生而進(jìn)入就緒隊列?!窳硪环N是由事件發(fā)生進(jìn)程喚醒。事件發(fā)生進(jìn)程和被喚醒進(jìn)程之間是合作關(guān)系。因此,喚醒原語既可被系統(tǒng)進(jìn)程調(diào)用,也可被事件發(fā)生進(jìn)程調(diào)用。2023/1/31733.4進(jìn)程的控制4、進(jìn)程的阻塞和喚醒2)進(jìn)程喚醒進(jìn)程喚醒的具體步驟是——(1)從相應(yīng)的等待進(jìn)程隊列中取出

PCB(2)修改PCB的有關(guān)信息,如進(jìn)程狀態(tài)等(3)將被喚醒的進(jìn)程置為就緒狀態(tài)之后,把修改后的PCB加入有關(guān)就緒進(jìn)程隊列2023/1/31743.4進(jìn)程的控制5、進(jìn)程的撤銷1)以下情況導(dǎo)致進(jìn)程被撤消:

①該進(jìn)程已完成所要求的功能而正常終止;②由于某種錯誤導(dǎo)致非正常終止;③祖先進(jìn)程要求撤消某個子進(jìn)程。2023/1/31753.4進(jìn)程的控制5、進(jìn)程的撤銷2)撤銷原語終止進(jìn)程的具體步驟:

根據(jù)撤銷進(jìn)程標(biāo)識號,從相應(yīng)隊列中找到它的PCB;將該進(jìn)程擁有的資源歸還給父進(jìn)程或操作系統(tǒng);若該進(jìn)程擁有子進(jìn)程,應(yīng)先撤銷它所有子孫進(jìn)程,以防它們脫離控制撤銷進(jìn)程出隊,將它的PCB歸還到

PCB池。2023/1/31763.4進(jìn)程的控制6、進(jìn)程的掛起和激活1)掛起原語執(zhí)行過程:

檢查要被掛起進(jìn)程的狀態(tài),若處于活動就緒態(tài)就修

改為掛起就緒,若處于阻塞態(tài),則修改為掛起阻塞。

被掛起進(jìn)程PCB的非常駐部分要交換到磁盤對換區(qū)。2023/1/31773.4進(jìn)程的控制6、進(jìn)程的掛起和激活2)激活原語執(zhí)行過程:

把進(jìn)程PCB非常駐部分調(diào)進(jìn)內(nèi)存,修改它的狀態(tài),

掛起等待態(tài)改為等待態(tài),掛起就緒態(tài)改為就緒態(tài),

排入相應(yīng)隊列中。

掛起原語既可由進(jìn)程自己也可由其他進(jìn)程調(diào)用,但

激活原語卻只能由其他進(jìn)程調(diào)用。2023/1/3178第三章進(jìn)程管理與調(diào)度

3.1中央處理器

3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/3179第三章進(jìn)程管理與調(diào)度

3.1中央處理器 3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/31803.5進(jìn)程切換與模式切換1、執(zhí)行模式1)處理機(jī)一般有兩種執(zhí)行模式

特權(quán)模式(又稱核心模式、系統(tǒng)模式等):操作系統(tǒng)核心程序在這種模式下運行。某些指令只能在特權(quán)模式下執(zhí)行,如讀寫處理機(jī)狀態(tài)字PSW等控制寄存器以及存儲管理相關(guān)的一些指令?!穹翘貦?quán)模式(即用戶模式):用戶程序在這個模式下運行。2023/1/31813.5進(jìn)程切換與模式切換1、執(zhí)行模式2)采用兩種執(zhí)行模式的目的

●為保護(hù)操作系統(tǒng)的數(shù)據(jù)表格不被可能出錯的用戶程序破壞?!癞?dāng)進(jìn)程運行系統(tǒng)內(nèi)核程序時,系統(tǒng)保存了用戶程序的運行現(xiàn)場,包括處理機(jī)狀態(tài)、現(xiàn)場信息,數(shù)據(jù)棧?!窈诵墓ぷ鳡顟B(tài)時處理機(jī)執(zhí)行任何特權(quán)指令或訪問系統(tǒng)的虛空間都不會報錯,待到返回用戶態(tài)程序時,原保護(hù)的程序狀態(tài)字被恢復(fù),處理機(jī)模式又轉(zhuǎn)到用戶態(tài)下,這以后如果執(zhí)行了特權(quán)指令,處理機(jī)即會報錯。2023/1/31823.5進(jìn)程切換與模式切換2、模式切換1)處理機(jī)模式切換的定義

●當(dāng)中斷發(fā)生時,暫時中斷正在執(zhí)行的用戶進(jìn)程,把進(jìn)程從

用戶狀態(tài)切換到內(nèi)核狀態(tài),去執(zhí)行操作系統(tǒng)例行程序以獲得服務(wù),這就是一次模式切換,●內(nèi)核在被中斷了的進(jìn)程的上下文中對這個中斷事件作處理,即使該中斷可能不是此進(jìn)程引起的?!癖恢袛噙M(jìn)程可以是正在用戶態(tài)下執(zhí)行的,也可以是正在核心態(tài)下執(zhí)行的,內(nèi)核都要保留足夠信息以便在后來能恢復(fù)被中斷了的進(jìn)程執(zhí)行。2023/1/31833.5進(jìn)程切換與模式切換2、模式切換2)處理機(jī)模式切換的過程

●保存被中斷進(jìn)程的處理器現(xiàn)場信息?!窀鶕?jù)中斷號置程序計數(shù)器(PC),同時,將原來的PC

值保存到處理機(jī)狀態(tài)字中?!癜延脩魻顟B(tài)切換到內(nèi)核狀態(tài),以便執(zhí)行中斷處理程序?!窀鶕?jù)中斷級別,設(shè)置中斷屏蔽。一般而言,如果發(fā)生某一級中斷,則要屏蔽該級以下級別的中斷。2023/1/31843.5進(jìn)程切換與模式切換2、模式切換3)進(jìn)程切換與模式切換的比較

●進(jìn)程切換是指處理機(jī)從一個進(jìn)程的運行轉(zhuǎn)到另一個進(jìn)程上運行?!衲J角袚Q時,處理機(jī)還在同一個進(jìn)程上運行,而進(jìn)程切換指處理機(jī)轉(zhuǎn)入另一個進(jìn)程運行。2023/1/31853.5進(jìn)程切換與模式切換2、模式切換3)進(jìn)程切換與模式切換的比較

進(jìn)程切換會涉及到如下內(nèi)容:(1)保存處理機(jī)的上下文,包括程序計數(shù)器、程序狀態(tài)字(2)修改當(dāng)前運行進(jìn)程的PCB的內(nèi)容,改變其狀態(tài)(從運行態(tài)轉(zhuǎn)到其它態(tài)),并將PCB鏈到相應(yīng)的新狀態(tài)隊列(3)選擇另一個被調(diào)度的進(jìn)程執(zhí)行(4)修改被調(diào)度進(jìn)程的PCB,包括把其狀態(tài)變?yōu)檫\行態(tài)(5)將當(dāng)前進(jìn)程的存儲結(jié)構(gòu)改變?yōu)樾逻x進(jìn)程的存儲結(jié)構(gòu)(6)恢復(fù)被選進(jìn)程上次切換出處理機(jī)時的現(xiàn)場2023/1/31863.5進(jìn)程切換與模式切換2、模式切換3)進(jìn)程切換與模式切換的比較

進(jìn)程調(diào)度(進(jìn)程切換)運行狀態(tài)等待狀態(tài)就緒狀態(tài)運行狀態(tài)等待狀態(tài)就緒狀態(tài)模式切換核心態(tài)用戶態(tài)2023/1/3187第三章進(jìn)程管理與調(diào)度

3.1中央處理器

3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/3188第三章進(jìn)程管理與調(diào)度

3.1中央處理器 3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/31893.6處理機(jī)調(diào)度1、調(diào)度策略1)要解決的問題

WHAT:按什么原則分配CPU?

—進(jìn)程調(diào)度算法WHEN:何時分配CPU?

—進(jìn)程調(diào)度的時機(jī)HOW:如何分配CPU?

—CPU調(diào)度過程(進(jìn)程的上下文切換)2023/1/31903.6處理機(jī)調(diào)度1、調(diào)度策略2)調(diào)度的目標(biāo)

①合理性:是在多道作業(yè)(進(jìn)程)并發(fā)時,各道作業(yè)(進(jìn)程)根據(jù)調(diào)度策略來分配處理機(jī)的使用,調(diào)度策略既要保證系統(tǒng)實現(xiàn)特殊功能要求(如實時性),同時也要使各道作業(yè)合理地分配到處理機(jī)份額。有效性:通過系統(tǒng)的調(diào)度,使處理機(jī)和I/O設(shè)備得到合理有效的分配,從而使系統(tǒng)資源得到充分的利用。2023/1/31913.6處理機(jī)調(diào)度1、調(diào)度策略3)考慮的因素①系統(tǒng)設(shè)計目標(biāo)批處理系統(tǒng)以充分發(fā)揮計算機(jī)效率為目的;實時系統(tǒng)要保證不要丟失實時信息并使之得到及時處理;而分時系統(tǒng)則應(yīng)該優(yōu)先保證用戶的請求能夠及時給予響應(yīng)。②資源利用率考慮在實現(xiàn)設(shè)計目標(biāo)的前提下,盡可能地發(fā)揮各種資源的效能。③均衡系統(tǒng)與用戶的要求一方面,不能因為用戶的要求而完全不顧及系統(tǒng)的性能,另一方面,也不應(yīng)該使一個作業(yè)的運行被無限制地推遲。2023/1/31923.6處理機(jī)調(diào)度2、調(diào)度模式1)高級調(diào)度也稱為作業(yè)調(diào)度或宏觀調(diào)度例如,在分時操作系統(tǒng)中,高級調(diào)度任務(wù):(1)是否接受一個終端用戶的連接;(2)一個程序能否被計算機(jī)系統(tǒng)接納并構(gòu)成進(jìn)程;(3)一個新建態(tài)進(jìn)程是否能夠加入就緒進(jìn)程隊列。2023/1/31933.6處理機(jī)調(diào)度高級調(diào)度中級調(diào)度低級調(diào)度

中級調(diào)度

中級調(diào)度2023/1/31943.6處理機(jī)調(diào)度2、調(diào)度模式2)中級調(diào)度也稱為平衡負(fù)載調(diào)度或中程調(diào)度。(1)決定主存儲器中所能容納的進(jìn)程數(shù),這些進(jìn)程將允許參與競爭處理器資源。(2)中級調(diào)度根據(jù)存儲資源量和進(jìn)程的當(dāng)前狀態(tài)來決定輔存和主存中進(jìn)程的對換。(3)使用方法是通過把一些進(jìn)程換出主存,使之進(jìn)入掛起狀態(tài),起到平滑和調(diào)整系統(tǒng)負(fù)荷作用。2023/1/31953.6處理機(jī)調(diào)度高級調(diào)度中級調(diào)度低級調(diào)度

中級調(diào)度

中級調(diào)度2023/1/31963.6處理機(jī)調(diào)度2、調(diào)度模式3)低級調(diào)度也稱為進(jìn)程調(diào)度或短程調(diào)度。(1)按照某種原則決定就緒隊列中的哪個進(jìn)程或線程能獲得處理器,并將處理器出讓給它工作。(2)短程調(diào)度是操作系統(tǒng)最為核心的部分,短程調(diào)度策略的優(yōu)劣直接影響到整個系統(tǒng)的性能。(3)低級調(diào)度的時間尺度通常是毫秒級的。由于其算法的頻繁使用,要求在實現(xiàn)時做到高效。2023/1/31973.6處理機(jī)調(diào)度高級調(diào)度中級調(diào)度低級調(diào)度

中級調(diào)度

中級調(diào)度2023/1/31983.6處理機(jī)調(diào)度2、調(diào)度模式4)處理機(jī)的調(diào)度模型2023/1/3199第三章進(jìn)程管理與調(diào)度

3.1中央處理器

3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/31100第三章進(jìn)程管理與調(diào)度

3.1中央處理器 3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/311013.7作業(yè)的管理與調(diào)度1、作業(yè)及其調(diào)度1)作業(yè)(1)作業(yè)用戶在一次計算過程中,或者一次事務(wù)處理過程中,要求計算機(jī)系統(tǒng)所做工作的總稱(2)作業(yè)流若干個作業(yè)進(jìn)入系統(tǒng)并存放于主存儲中形成作業(yè)流(3)作業(yè)步一個作業(yè)可劃分成若干部分,每部分稱一個作業(yè)步2023/1/311023.7作業(yè)的管理與調(diào)度1、作業(yè)及其調(diào)度2)作業(yè)的狀態(tài)及其轉(zhuǎn)換進(jìn)入狀態(tài)退出狀態(tài)后備狀態(tài)運行狀態(tài)作業(yè)控制進(jìn)程…輸入設(shè)備數(shù)據(jù)源程序輸出設(shè)備作業(yè)說明書輸入井運行輸出井輸入程序輸出程序作業(yè)調(diào)度進(jìn)程調(diào)度等待就緒2023/1/311033.7作業(yè)的管理與調(diào)度1、作業(yè)及其調(diào)度3)作業(yè)的調(diào)度主要功能:審查系統(tǒng)能否滿足用戶作業(yè)的資源要求只要通過調(diào)用相應(yīng)的資源管理程序的有關(guān)部分審核其表中是否能滿足作業(yè)說明書中的要求即可按照一定的算法從輸入井中的后備作業(yè)中選取作業(yè)

調(diào)度的關(guān)鍵在選擇恰當(dāng)?shù)乃惴?023/1/311043.7作業(yè)的管理與調(diào)度2、作業(yè)與進(jìn)程①作業(yè)是用戶向計算機(jī)提交任務(wù)的任務(wù)實體,而進(jìn)程則是完成用戶任務(wù)的執(zhí)行實體,是向系統(tǒng)申請分配資源的基本單位。②一個作業(yè)可由多個進(jìn)程組成。且必須至少由一個進(jìn)程組成,但反過來不成立。③作業(yè)的概念主要用在批處理系統(tǒng)中,像Linux這樣的分時系統(tǒng)中,則沒有作業(yè)概念,而進(jìn)程的概念則用在幾乎所有的多道程序系統(tǒng)中。2023/1/311053.7作業(yè)的管理與調(diào)度3、調(diào)度原則1)理想目標(biāo)(1)單位時間內(nèi)運行盡可能多的作業(yè)(2)使處理器盡可能保持“忙碌”(3)響應(yīng)時間和周轉(zhuǎn)時間能夠盡可能短(4)使各種I/O設(shè)備得以充分利用(5)對所有的作業(yè)都是公平合理的2023/1/311063.7作業(yè)的管理與調(diào)度3、調(diào)度原則2)設(shè)計原則

要設(shè)計一個理想的調(diào)度算法是一件十分困難的事在實際系統(tǒng)中,調(diào)度算法往往折衷考慮。調(diào)度算法應(yīng)與系統(tǒng)設(shè)計目標(biāo)保持一致注意系統(tǒng)資源均衡使用保證提交的作業(yè)在截止時間內(nèi)完成設(shè)法縮短作業(yè)平均周轉(zhuǎn)時間大多數(shù)操作系統(tǒng)都采用比較簡單的調(diào)度算法。2023/1/311073.7作業(yè)的管理與調(diào)度3、調(diào)度原則3)調(diào)度算法性能的衡量(1)作業(yè)平均周轉(zhuǎn)時間假定某一作業(yè)進(jìn)入“輸入井”的時間為Si,它被選中執(zhí)行,得到計算結(jié)果的時間為Ei。它的周轉(zhuǎn)時間為Ti=Ei–Si則作業(yè)平均周轉(zhuǎn)時間為:

n為被測定作業(yè)流中的作業(yè)數(shù)2023/1/311083.7作業(yè)的管理與調(diào)度3、調(diào)度原則3)調(diào)度算法性能的衡量(2)平均帶權(quán)周轉(zhuǎn)時間

ri為某作業(yè)i的實際執(zhí)行時間

T:衡量不同調(diào)度算法對同一個作業(yè)流的性能

W:同一調(diào)度算法對不同作業(yè)流的性能衡量2023/1/311093.7作業(yè)的管理與調(diào)度4、作業(yè)調(diào)度算法1)系統(tǒng)進(jìn)行作業(yè)調(diào)度算法的決策因素作業(yè)到達(dá)時間預(yù)先為作業(yè)確定的優(yōu)先級系統(tǒng)可測定的其他因素:作業(yè)所需的CPU時間C存儲要求M其他的資源要求2023/1/311103.7作業(yè)的管理與調(diào)度4、作業(yè)調(diào)度算法2)常見的作業(yè)調(diào)度算法(1)先來先服務(wù)算法(FCFS:FirstComeFirstServe)最簡單的調(diào)度算法。按照作業(yè)提交的先后順序分派CPU。當(dāng)前作業(yè)或進(jìn)程占用CPU后,除非其任務(wù)完成或阻塞,才讓出CPU(非搶占式)。特點:●算法開銷小

●有利于長作業(yè),不利于短作業(yè)

●有利于CPU繁忙的作業(yè),不利于I/O繁忙的作業(yè)2023/1/311113.7作業(yè)的管理與調(diào)度4、作業(yè)調(diào)度算法2)常見的作業(yè)調(diào)度算法(2)最短作業(yè)優(yōu)先算法(SJF:ShortestJobFirst)對執(zhí)行時間短的作業(yè)優(yōu)先分派處理機(jī)。特點:●

可以得到最大的系統(tǒng)吞吐率●比FCFS算法改善了平均周轉(zhuǎn)時間和帶權(quán)周轉(zhuǎn)時間●有可能使長作業(yè)永遠(yuǎn)沒有機(jī)會執(zhí)行

2023/1/311123.7作業(yè)的管理與調(diào)度4、作業(yè)調(diào)度算法2)常見的作業(yè)調(diào)度算法(3)最短剩余時間優(yōu)先算法(SRTF)

SRTF把SJF(短作業(yè)優(yōu)先)算法改為搶占式。

一個新作業(yè)進(jìn)入就緒狀態(tài),如果新作業(yè)需要的CPU時間比當(dāng)前正在執(zhí)行的作業(yè)剩余下來還需的CPU時間短,SRTF強(qiáng)行趕走當(dāng)前正在執(zhí)行作業(yè)。稱最短剩余時間優(yōu)先算法2023/1/311133.7作業(yè)的管理與調(diào)度4、作業(yè)調(diào)度算法2)常見的作業(yè)調(diào)度算法(4)最高響應(yīng)比優(yōu)先算法(HRN)

(HRN:HighestResponseRatioNext)響應(yīng)比R=作業(yè)周轉(zhuǎn)時間/作業(yè)處理時間

=(作業(yè)處理時間+作業(yè)等待時間)/作業(yè)處理時間

=1+(作業(yè)等待時間/作業(yè)處理時間)2023/1/311143.7作業(yè)的管理與調(diào)度4、作業(yè)調(diào)度算法2)常見的作業(yè)調(diào)度算法(5)基于優(yōu)先數(shù)的調(diào)度算法(HPF)

由用戶規(guī)定優(yōu)先數(shù)(外部優(yōu)先數(shù))用戶提交作業(yè)時,根據(jù)急迫程度規(guī)定適當(dāng)?shù)膬?yōu)先數(shù)作業(yè)調(diào)度程序根據(jù)JCB優(yōu)先數(shù)決定進(jìn)入內(nèi)存的次序●由系統(tǒng)計算優(yōu)先數(shù)(內(nèi)部優(yōu)先數(shù))例:可按如下公式計算作業(yè)的優(yōu)先數(shù):優(yōu)先數(shù)=用戶規(guī)定優(yōu)先數(shù)–作業(yè)處理時間

+作業(yè)等待時間–輸出量2023/1/311153.7作業(yè)的管理與調(diào)度4、作業(yè)調(diào)度算法2)常見的作業(yè)調(diào)度算法(6)均衡調(diào)度算法(分類排隊法)

基本思想:●根據(jù)系統(tǒng)運行情況和作業(yè)屬性將作業(yè)分類●輪流從不同的作業(yè)類中挑選作業(yè)目標(biāo):●力求均衡地利用各種系統(tǒng)資源,發(fā)揮資源使用效率●力求使用戶滿意2023/1/311163.7作業(yè)的管理與調(diào)度4、作業(yè)調(diào)度算法2)常見的作業(yè)調(diào)度算法(6)均衡調(diào)度算法(分類排隊法)

例1:將待處理作業(yè)分成如下隊列:隊列1:計算量大的作業(yè)隊列2:I/O量大的作業(yè)隊列3:計算量與I/O量均衡的作業(yè)調(diào)度時,在三個隊列中各取一些作業(yè)。在內(nèi)存中的作業(yè)有的使用處理器有的使用外部設(shè)備,使得系統(tǒng)的各種資源能得到充分利用。2023/1/311173.7作業(yè)的管理與調(diào)度4、作業(yè)調(diào)度算法2)常見的作業(yè)調(diào)度算法(6)均衡調(diào)度算法(分類排隊法)

例2:將待處理作業(yè)分成如下三個隊列:隊列1:長作業(yè)隊列2:中等長度作業(yè)隊列3:短作業(yè)調(diào)度時 取隊列1一作業(yè),隊列2一作業(yè),隊列3一作業(yè)長作業(yè)用戶和短作業(yè)用戶均比較滿意2023/1/311183.7作業(yè)的管理與調(diào)度5、單道程序環(huán)境下的作業(yè)調(diào)度算法

假設(shè)在單道批處理環(huán)境下有四個作業(yè),已知它們進(jìn)入系統(tǒng)的時間、估計運行時間。應(yīng)用先來先服務(wù)、最短作業(yè)優(yōu)先和最高響應(yīng)比優(yōu)先作業(yè)調(diào)度算法,分別計算出作業(yè)的平均周轉(zhuǎn)時間和帶權(quán)的平均周轉(zhuǎn)時間。2023/1/311193.7作業(yè)的管理與調(diào)度5、單道程序環(huán)境下的作業(yè)調(diào)度算法先來先服務(wù)調(diào)度算法計算結(jié)果2023/1/311203.7作業(yè)的管理與調(diào)度5、單道程序環(huán)境下的作業(yè)調(diào)度算法最短作業(yè)優(yōu)先算法計算結(jié)果2023/1/311213.7作業(yè)的管理與調(diào)度5、單道程序環(huán)境下的作業(yè)調(diào)度算法最高響應(yīng)比優(yōu)先算法計算結(jié)果130502.615.13.775410102.52023/1/31122作業(yè)提交時間運行時間開始時間完成時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間12310∶0010∶1010∶252∶001∶000∶25

平均作業(yè)周轉(zhuǎn)時間=平均作業(yè)帶權(quán)周轉(zhuǎn)時間W=例1:單道批處理系統(tǒng)中,下列三個作業(yè)采用先來先服務(wù)調(diào)度算法和最高響應(yīng)比優(yōu)先算法進(jìn)行調(diào)度,哪一種算法性能較好?請完成下表:2023/1/311233.7作業(yè)的管理與調(diào)度6、多道程序環(huán)境下的作業(yè)調(diào)度算法

在兩道環(huán)境下有四個作業(yè)已知它們進(jìn)入系統(tǒng)的時間、估計運行時間系統(tǒng)采用短作業(yè)優(yōu)先作業(yè)調(diào)度算法,作業(yè)被調(diào)度運行后不再退出當(dāng)一新作業(yè)投入運行后,可按照作業(yè)運行時間長短調(diào)整作業(yè)執(zhí)行的次序請給出這四個作業(yè)的執(zhí)行時間序列,并計算出平均周轉(zhuǎn)時間及帶權(quán)平均周轉(zhuǎn)時間2023/1/311243.7作業(yè)的管理與調(diào)度6、多道程序環(huán)境下的作業(yè)調(diào)度算法最短作業(yè)優(yōu)先作業(yè)算法計算結(jié)果2023/1/311253.7作業(yè)的管理與調(diào)度6、多道程序環(huán)境下的作業(yè)調(diào)度算法算法分析過程——10:00,JOB1進(jìn)入,只有一作業(yè),JOB1被調(diào)入執(zhí)行10:05,JOB2到達(dá),最多允許兩作業(yè)同時進(jìn)入所以JOB2也被調(diào)入●內(nèi)存中有兩作業(yè),哪一個執(zhí)行?題目規(guī)定當(dāng)一新作業(yè)運行后,可按作業(yè)運行時間長短調(diào)整執(zhí)行次序●即可搶占式調(diào)度策略 優(yōu)先數(shù)是根據(jù)作業(yè)估計運行時間大小來決定的 由于JOB2運行時間(20分)比JOB1少 (到10:05,JOB1還需25分鐘) 所以JOB2運行,而JOB1等待2023/1/311263.7作業(yè)的管理與調(diào)度6、多道程序環(huán)境下的作業(yè)調(diào)度算法算法分析過程——10:10,JOB3到達(dá)輸入井,內(nèi)存已有兩作業(yè)

JOB3不能馬上進(jìn)入內(nèi)存;10:20,JOB4也不能進(jìn)入內(nèi)存10:25,JOB2運行結(jié)束,退出,內(nèi)存中剩下JOB1

輸入井中有兩作業(yè)JOB3和JOB4,如何調(diào)度?作業(yè)調(diào)度算法:最短作業(yè)優(yōu)先因此JOB3進(jìn)入內(nèi)存,比較JOB1和JOB3運行時間,JOB3運行時間短,故JOB3運行,同樣,JOB3退出后,下一個是JOB4JOB4結(jié)束后,JOB1才能繼續(xù)運行2023/1/311273.7作業(yè)的管理與調(diào)度6、多道程序環(huán)境下的作業(yè)調(diào)度算法算法分析過程四個作業(yè)的執(zhí)行時間序列為:JOB1:10:00—10:05,10:40—11:05JOB2:10:05—10:25JOB3:10:25—10:30JOB4:10:30—10:402023/1/31128例3.有一個四道作業(yè)的操作系統(tǒng),若在一段時間內(nèi)先后到達(dá)6個作業(yè),它們的提交和估計運行時間由下表給出:作業(yè)提交時間估計運行時間(分鐘)

18:006028:203538:252048:302558:35568:4010

系統(tǒng)采用SJF調(diào)度算法,作業(yè)被調(diào)度進(jìn)入系統(tǒng)后中途不會退出,但作業(yè)運行時可被更短作業(yè)搶占。(1)分別給出6個作業(yè)的執(zhí)行時間序列、即開始執(zhí)行時間、作業(yè)完成時間、作業(yè)周轉(zhuǎn)時間。(2)計算平均作業(yè)周轉(zhuǎn)時間。2023/1/31129第三章進(jìn)程管理與調(diào)度

3.1中央處理器

3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/31130第三章進(jìn)程管理與調(diào)度

3.1中央處理器 3.8低級調(diào)度3.2中斷

3.9線程及其概念3.3進(jìn)程及其實現(xiàn)

3.10Linux進(jìn)程管理3.4進(jìn)程的控制3.5進(jìn)程切換與模式切換3.6處理器調(diào)度3.7作業(yè)的管理與調(diào)度2023/1/311313.8低級調(diào)度1、低級調(diào)度的概念●低級調(diào)度負(fù)責(zé)動態(tài)地把處理器分配給進(jìn)程或內(nèi)核級線程。●操作系統(tǒng)中實現(xiàn)低級調(diào)度的程序稱為進(jìn)程(線程)調(diào)度程序,或分派程序(Dispatcher)?!?/p>

進(jìn)程調(diào)度算法多數(shù)適用于線程調(diào)度。2023/1/311323.8低級調(diào)度2、低級調(diào)度的時機(jī)●當(dāng)一個進(jìn)程從運行態(tài)切換成等待態(tài)時;●當(dāng)一個進(jìn)程從運行態(tài)切換成就緒態(tài)時;●當(dāng)一個進(jìn)程從等待態(tài)切換成就緒態(tài)時;●當(dāng)一個進(jìn)程中止時。2023/1/311333.8低級調(diào)度3、低級調(diào)度的功能(1)記錄系統(tǒng)中所有進(jìn)程的執(zhí)行情況●作為進(jìn)程調(diào)度的準(zhǔn)備,進(jìn)程管理模塊必須將系統(tǒng)中各進(jìn)程的執(zhí)行情況和狀態(tài)特征記錄在各進(jìn)程的PCB表中?!窀鶕?jù)各進(jìn)程的狀態(tài)特征和資源需求、進(jìn)程管理模塊還將各進(jìn)程的PCB排成相應(yīng)的隊列并進(jìn)行動態(tài)隊列轉(zhuǎn)接?!襁M(jìn)程調(diào)度模塊通過PCB變化來掌握系統(tǒng)中存在的所有進(jìn)程的執(zhí)行情況和狀態(tài)特征,并在適當(dāng)?shù)臅r機(jī)從就緒隊列中選擇出一個進(jìn)程占據(jù)處理機(jī)。2023/1/311343.8低級調(diào)度3、低級調(diào)度的功能(2)選擇占有處理機(jī)的進(jìn)程●進(jìn)程調(diào)度的主要功能是按照一定的策略選擇一個處于就緒狀態(tài)的進(jìn)程,使其獲得處理機(jī)執(zhí)行?!窀鶕?jù)不同的系統(tǒng)設(shè)計目的,有各種各樣的選擇策略,例如系統(tǒng)開銷較少的靜態(tài)優(yōu)先數(shù)調(diào)度法,適合于分時系統(tǒng)的時間片輪轉(zhuǎn)法等。

2023/1/311353.8低級調(diào)度3、低級調(diào)度的功能(3)進(jìn)行進(jìn)程上下文切換●系統(tǒng)要首先檢查是否允許做上下文切換(在有些情況下,上下文切換是不允許的,例如系統(tǒng)正在執(zhí)行某個不允許中斷的原語時)。●然后,系統(tǒng)要保留有關(guān)被切換進(jìn)程的足夠信息,以便以后切換回該進(jìn)程時,順利恢復(fù)該進(jìn)程的執(zhí)行。●在系統(tǒng)保留了CPU現(xiàn)場之后,調(diào)度程序選擇一個新的

處于就緒狀態(tài)的進(jìn)程、并裝配該進(jìn)程的上下文,使

CPU的控制權(quán)掌握在被選中進(jìn)程手中。2023/1/311363.8低級調(diào)度3、低級調(diào)度的功能(4)低級調(diào)度的功能小結(jié)●記住進(jìn)程的狀態(tài)。●決定某個進(jìn)程什么時候獲得處理器?!駴Q定某個進(jìn)程占用處理器多長時間?!癜烟幚砥鞣峙浣o進(jìn)程?!袷栈靥幚砥?。2023/1/311373.8低級調(diào)度4、低級調(diào)度的方式可剝奪式(可搶占式Preemptive):

當(dāng)有比正在運行的進(jìn)程優(yōu)先級更高的進(jìn)程就緒時,系統(tǒng)可強(qiáng)行剝奪正在運行進(jìn)程的CPU,提供給具有更高優(yōu)先級的進(jìn)程使用,或是當(dāng)運行進(jìn)程/線程時間片用完后被剝奪。win98/2000/xp不可剝奪式(不可搶占式Non-preemptive):某一進(jìn)程被調(diào)度運行后,除非由于它自身的原因不能運行,否則一直運行下去,win3.1折衷方式2023/1/311383.8低級調(diào)度5、低級調(diào)度算法1)先來先服務(wù)算法按照進(jìn)程進(jìn)入就緒隊列的先后次序分配處理器。先進(jìn)入就緒隊列的進(jìn)程優(yōu)先被挑選,運行進(jìn)程一旦占有處理器將一直運行直到結(jié)束或阻塞。算法容易實現(xiàn),效率不高,不利于I/O頻繁的進(jìn)程2023/1/311393.8低級調(diào)度5、低級調(diào)度算法2)時間片輪轉(zhuǎn)調(diào)度算法調(diào)度程序每次把CPU分配給就緒隊列首進(jìn)程使用一個時間片,例如100ms,就緒隊列中的每個進(jìn)程輪流地運行一個時間片。當(dāng)這個時間片結(jié)束時,強(qiáng)迫一個進(jìn)程讓出處理器,讓它排列到就緒隊列的尾部,等候下一輪調(diào)度。輪轉(zhuǎn)策略可防止那些很少使用外圍設(shè)備的進(jìn)程過長的占用處理器而使得要使用外圍設(shè)備的那些進(jìn)程沒有機(jī)會去啟動外圍設(shè)備。2023/1/311403.8低級調(diào)度5、低級調(diào)度算法2)時間片輪轉(zhuǎn)調(diào)度算法

關(guān)于時間片的取選輪轉(zhuǎn)法調(diào)度是一種剝奪式調(diào)度,系統(tǒng)耗費在進(jìn)程切換上的開銷比較大,這個開銷與時間片的大小很有關(guān)系。時間片大小的確定要從進(jìn)程個數(shù)、切換開銷、系統(tǒng)效率和響應(yīng)時間等方面考慮。2023/1/311413.8低級調(diào)度5、低級調(diào)度算法2)時間片輪轉(zhuǎn)調(diào)度算法

關(guān)于時間片的取選時間片取值太小,多數(shù)進(jìn)程不能在一個時間片內(nèi)運行完畢,切換就會頻繁,開銷顯著增大,從系統(tǒng)效率來看,時間片取大一點好。時間片取值較大,隨就緒隊列里進(jìn)程數(shù)目增加,輪轉(zhuǎn)一次的總時間增大,對進(jìn)程的響應(yīng)速度放慢了。為滿足響應(yīng)時間要求,要么限制就緒隊列中進(jìn)程數(shù)量,要么采用動態(tài)時間片法,根據(jù)負(fù)載狀況,及時調(diào)整時間片的大小。2023/1/311423.8低級調(diào)度5、低級調(diào)度算法3)優(yōu)先權(quán)調(diào)度算法(1)靜態(tài)優(yōu)先數(shù)法使用外圍設(shè)備頻繁者優(yōu)先數(shù)大,這樣有利于提高效率;重要算題程序的進(jìn)程優(yōu)先數(shù)大,這樣有利于用戶;進(jìn)入計算機(jī)時間長的進(jìn)程優(yōu)先數(shù)大,這樣有利于縮短作業(yè)完成的時間;交互式用戶的進(jìn)程優(yōu)先數(shù)大,這樣有利于終端用戶的響應(yīng)時間等等。2023/1/311433.8低級調(diào)度5、低級調(diào)度算法3)優(yōu)先權(quán)調(diào)度算法(2)動態(tài)優(yōu)先數(shù)法根據(jù)進(jìn)程占有CPU時間多少來決定,當(dāng)進(jìn)程占有CPU時間愈長,那么,在它被阻塞之后再次獲得調(diào)度的優(yōu)先級就越低,反之,進(jìn)程獲得調(diào)度的可能性越大;根據(jù)進(jìn)程等待CPU時間多少來決定,當(dāng)進(jìn)程在就緒隊列中等待時間愈長,那么,在它被阻塞之后再次獲得調(diào)度的優(yōu)先級就越高,反之,進(jìn)程獲得調(diào)度的可能性越小。2023/1/311443.8低級調(diào)度5、低級調(diào)度算法4)多級反饋隊列調(diào)度又稱反饋循環(huán)隊列或多隊列策略。主要思想是將就緒進(jìn)程分為兩級或多級,系統(tǒng)相應(yīng)建立兩個或多個就緒進(jìn)程隊列,較高優(yōu)先級的隊列一般分配給較短的時間片。處理器調(diào)度先從高級就緒進(jìn)程隊列中選取可占有處理器的進(jìn)程,只有在選不到時,才從較低級的就緒進(jìn)程隊列中選取。2023/1/311453.8低級調(diào)度5、低級調(diào)度算法4)多級反饋隊列調(diào)度處理機(jī)處理機(jī)接納就緒隊列1就緒隊列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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論