操作系统(十三)处理机调度的概念、层次
2.2.1 處理機調度的概念、層次
目錄
2.2.1 處理機調度的概念、層次
2.2.1.1 處理機調度的概念
2.2.1.2 處理機調度的三個層次
2.2.1.3 小結
2.2.1.1 處理機調度的概念
? 一般來說在多道程序系統中,作業數往往是多于處理機個數的,為了合理分配處理機資源這就需要確定某種規則來決定處理這些在就緒隊列等待的任務的順序,這就是“調度”研究的問題。
2.2.1.2 處理機調度的三個層次
? 高級調度(作業調度):根據某種算法,把外存上處于后備隊列中的那些作業調入內存,也就是說,它的調度對象是作業。所謂作業是一個比程序更為廣泛的概念,它不僅包含了通常的程序和數據,而且還應配有一份作業說明書,系統根據該說明書來對程序的運行進行控制。作業調度是以作業為單位從外存調入內存的。
? 作業進入系統時系統會為每個作業建立一個JCB(Job Control Block)根據作業類型將它插入相應的后備隊列中。作業調度程序依據一定的調度算法來調度它們,被調度到的作業將會裝入內存。在作業運行期間,系統就按照 JCB 中的信息對作業進行控制。當一個作業執行結束進入完成狀態時,系統負責回收分配給它的資源,撤消它的作業控制塊。
? 中級調度(內存調度):為了不讓暫時不運行的程序占用CPU,中級調度可以先將這些進程放到外存等待掛起,等CPU有空閑時再將其上處理機運行。中級調度就是決定讓哪個掛起狀態進入CPU運行。這里我們要注意,PCB不會因為進程掛起而進入外存,他會常駐內存。?
? 在這里我們引入了掛起的概念,掛起又可以分為就緒掛起以及阻塞掛起,那么進程的狀態就由五態變為了七態。
? 可能這張圖看起來有點復雜,其實就是在五態的前提下加入了掛起與激活,我們需要注意,掛起不同于阻塞,阻塞的進程還在內存之中而掛起的進程卻調入了外存。
? 低級調度(進程調度):是按照某種方法和策略從就緒隊列中選取一個進程,將處理機分配給它。進程調度是操作系統中最基本的一種調度,在一般的操作系統中都必須配置進程調度。進程調度的頻率很高,一般幾十毫秒。
2.2.1.3 小結
| 調度層次 | 做什么 | 調度位置 | 頻率 | 進程狀態 |
| 高級調度(作業調度) | 按照某種規則,從后備隊列中選擇合適的作業將其調入內存,并為其創建進程 | 外存到內存(面向作業) | 低 | 無->創建態->就緒態 |
| 中級調度(內存調度) | 按照某種規則,從掛起隊列中選擇合適的進程將其數據調回內存 | 外存到內存(面向進程) | 中 | 掛起態->就緒態 (阻塞掛起->阻塞態) |
| 低級調度(進程調度) | 按照某種規則,從就緒隊列中選擇一個進程為其分配處理機 | 內存到CPU | 高 | 就緒態->運行態 |
總結
以上是生活随笔為你收集整理的操作系统(十三)处理机调度的概念、层次的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 竞品分析竞的是思维
- 下一篇: 操作系统(十四)进程调度的时机、调度方式