王道操作系统考研笔记——2.1.6 处理机调度的概念和层次
文章目錄
- 2.1.6 處理機調度的概念和層次
- 2.1.6.1 調度的基本概念
- 2.1.6.2 高級調度
- 2.1.6.3 中級調度
- 2.1.6.4 進程的掛起態和七狀態模型
- 2.1.6.5 低級調度
- 2.1.6.6 三層調度的聯系、對比
- 2.1.6.7 小結
2.1.6 處理機調度的概念和層次
知識總覽
2.1.6.1 調度的基本概念
實際上,這里要講的調度和數據庫筆記中9.6并發控制的正確性原則中的調度是一個概念。
假設我們現在有這么兩個場景:
場景一是用戶到銀行取錢,普通用戶先到先服務,VIP用戶可以優先被服務。場景二是上廁所,根據上廁所時長的不一樣,每個人私下協商,使用時間短的先進去廁所,使用時間相同的按排隊的優先級來使用。
當有一堆任務要處理,但由于資源有限,這些事情沒法同時處理。這就需要確定某種規則來決定處理這些任務的順序,這就是“調度”研究的問題。
在多道程序系統中,進程的數量往往是多于處理機的個數的,這樣不可能同時并行地處理各個進程。處理機調度,就是從就緒隊列中按照一定的算法選擇一個進程并將處理機分配給它運行,以實現進程的并發執行。
2.1.6.2 高級調度
由于內存空間有限,有時無法將用戶提交的作業全部放入內存,因此就需要確定某種規劃來決定將作業調入內存的順序。
高級調度(作業調度),即按一定的原則從外存上處于后備隊列的作業中挑選一個或多個作業,給他們分配內存等必要資源,并建立相應的進程(建立PCB),以使它們獲得競爭處理機的權利。
高級調度是輔存(外存)與內存之間的調度。每個作業只調入一次,調出一次。作業調入時會建立相應的PCB,作業調出時才撤銷PCB。高級調度主要是指調入的問題,因為只有調入的時機需要操作系統來確定,但調出的時機必然是作業運行狀態結束才調出。
2.1.6.3 中級調度
在后面,我們將會講到虛擬存儲技術,這里先暫時提及一下。
在引入了虛擬存儲技術后,可將暫時不能運行的進程調至外存等待。等他重新具備了運行條件且內存又稍有空閑時,再重新調入內存。
這么做的目的是為了提高內存利用率和系統吞吐量。
暫時調到外存等待的進程狀態為掛起狀態。值得一提的是,PCB并不會一起調到外存,而是會常駐內存,PCB中會記錄數據在外存中的存放位置,進程狀態等信息,操作系統通過內存中的PCB來保持對各個進程的監控、管理、被掛起的進程PCB會被放到掛起隊列中。
中級調度(內存調度),就是要決定將哪個處于掛起狀態的進程重新調入內存。
一個進程可能會被多次調出、調入內存,因此中級調度發生的頻率要比高級調度要高。
2.1.6.4 進程的掛起態和七狀態模型
在2.1.2.1 和 2.1.2.2 中我們學習了進程的五狀態模型,而這是408要求掌握的;但是在一些自主命題的學校,它們會考查七狀態模型。
暫時調到外存等待的進程狀態為掛起狀態。掛起態又可以進一步細分為就緒掛起、阻塞掛起兩種狀態。
實際上說白了就是,內存不夠用了,滿了,先把一些進程掛起放在外存,其PCB放在內存,一旦內存有多余位置了立馬把外存中的進程調進來。
這里要注意的是掛起和阻塞的區別。兩種狀態都是暫時不能獲得CPU的服務,但掛起態是將進程映像調到外存去了,而阻塞態進程映像還在內存中。有的操作系統會把就緒掛起、阻塞掛起分為兩個掛起隊列,甚至會根據阻塞原因不同再把阻塞掛起進程進一步細分為多個隊列。
2.1.6.5 低級調度
低級調度(進程調度),其主要任務是按照某種方法和策略從就緒隊列中選取一個進程,將處理機分配給它。
進程調度是操作系統中最基本的一種調度,在一般的操作系統中都必須配置進程調度。
進程調度的頻率很高,一般幾十毫秒一次。
2.1.6.6 三層調度的聯系、對比
2.1.6.7 小結
一般來說,考查的重點并不會是什么高級調度、中級調度、低級調度,而是考它另一個名字:作業調度、內存調度、進程調度。
總結
以上是生活随笔為你收集整理的王道操作系统考研笔记——2.1.6 处理机调度的概念和层次的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为交换机vlan创建命令
- 下一篇: 工业设备数据采集系统-采集精灵