6 操作系统第二章 进程管理 处理机调度
文章目錄
- 1 處理機調度
- 1.1 處理機調度概念
- 1.2 處理機調度三大層次
- 1.3 處理機三層調度的聯系、對比
- 1.4 處理機調度小結
- 2 進程調度
- 2.1 進程調度、進程切換時機
- 2.2 進程調度方式
- 2.3 進程的切換與過程
- 2.4 進程切換與調度小結
- 3 典型的調度算法
- 3.1 先來先服務 FCFS
- 3.2 短作業優先 SJF
- 3.3 FCFS 和 SJF說明
- 3.4 高響應比優先算法
- 3.5 FCFS 、SJF和高響應比優先算法比較
1 處理機調度
1.1 處理機調度概念
在多道程序系統中,進程的數量往往是多于處理機的個數的,這樣不可能同時并行地處理各個進程。 處理機調度,就是從就緒隊列中按照一定的算法選擇一個進程并將處理機分配給它運行,以實現進程 的并發執行。
1.2 處理機調度三大層次
1. 高級調度:
由于內存空間有限,有時無法將用戶提交的作業全部放入內存,因此就需要確定某種規則來決定將作業調入內存的順序。
高級調度(作業調度):按一定的原則從外存上處于后備隊列的作業中挑選一個(或多個)作業, 給他們分配內存等必要資源,并建立相應的進程(建立PCB),以使它(們)獲得競爭處理機的權利。
高級調度是輔存(外存)與內存之間的調度。每個作業只調入一次,調出一次。作業調入時會建立相應的PCB,作業調出時才撤銷PCB。高級調度主要是指調入的問題,因為只有調入的時機需要操作系統來確定,但調出的時機必然是作業運行結束才調出。
2. 中級調度:
引入了虛擬存儲技術之后,可將暫時不能運行的進程調至外存等待。等它重新具備了運行條件且內存又稍有空閑時,再重新調入內存。
這么做的目的是為了提高內存利用率和系統吞吐量。 暫時調到外存等待的進程狀態為掛起狀態。
值得注意的是,PCB并不會一起調到外存,而是會常駐內存。PCB中會記錄進程數據在外存中的存放位置,進程狀態等信息,操作系統通過內存中的PCB 來保持對各個進程的監控、管理。被掛起的進程PCB會被放到的掛起隊列中。
中級調度(內存調度),就是要決定將哪個處于掛起狀態的進程重新調入內存。 一個進程可能會被多次調出、調入內存,因此中級調度發生的頻率要比高級調度更高。
暫時調到外存等待的進程狀態為掛起狀態(掛起態,suspend) 掛起態又可以進一步細分為就緒掛起、阻塞掛起兩種狀態;
五狀態模型 → 七狀態模型
3. 低級調度:
低級調度(進程調度),其主要任務是按照某種方法和策略從就緒隊列中選取一個進程,將處理機分配給它。
進程調度是操作系統中最基本的一種調度,在一般的操作系統中都必須配置進程調度。
1.3 處理機三層調度的聯系、對比
1.4 處理機調度小結
2 進程調度
2.1 進程調度、進程切換時機
內核程序臨界區訪問的臨界資源如果不盡快釋放的話,極有可能影響到操作系統內核的其他管理工作。
因此在訪問內核程序臨界區期間不能進行調度與切換;
普通臨界區訪問的臨界資源不會直接影響操作系統內核的管理工作。
因此在訪問普通臨界區時可以進行調度與切換。
進程在普通臨界區中是可以進行調度、切換,在內核程序臨界區期間不能進行調度與切換。
2.2 進程調度方式
又稱非搶占方式。只允許進程主動放棄處理機。在運行過程中即便有更緊迫的任務到達,當前進程依然會繼續使用處理機,直到該進程終止或主動要求進入阻塞態。
特點:實現簡單,系統開銷小但是無法及時處理緊急任務,適合于早期的批處理系統。
又稱搶占方式。當一個進程正在處理機上執行時,如果有一個更重要或更緊迫的進程需要使用處理機,則立即暫停正在執行的進程,將處理機分配給更重要緊迫的那個進程。
特點:可以優先處理更緊急的進程,也可實現讓各進程按時間片輪流執行的功能(通過時鐘中斷)。適合于分時操作系統、實時操作系統。
2.3 進程的切換與過程
(1)對原來運行進程各種數據的保存
(2)對新的進程各種數據的恢復 (如:程序計數器、程序狀態字、各種數據寄存器等處理機現場信息,這些信息一般保存在進程控制塊PCB)
注意:進程切換是有代價的,因此如果過于頻繁的進行進程調度、切換,必然會使整個系統的效率降低, 使系統大部分時間都花在了進程切換上,而真正用于執行進程的時間減少。
2.4 進程切換與調度小結
3 典型的調度算法
重點學習和比較算法以下思路:
3.1 先來先服務 FCFS
3.2 短作業優先 SJF
3.3 FCFS 和 SJF說明
FCFS算法是在每次調度的時候選擇一個等待時間最長的作業(進程)為其服務。但是沒有考慮到作業的運行時間,因此導致了對短作業不友好的問題;
SJF算法是選擇一個執行時間最短的作業為其服務。但是又完全不考慮各個作業的等待時間,因此導致了對長作業不友好的問題,甚至還會造成 饑餓問題
能不能設計一個算法,即考慮到各個作業的等待時間,也能兼顧運行時間呢?
3.4 高響應比優先算法
3.5 FCFS 、SJF和高響應比優先算法比較
注:這幾種算法主要關心對用戶的公平性、平均周轉時間、平均等待時間等評價系統整體性能的指標,但是不關心“響應時間”,也并不區分任務的緊急程度,因此對于用戶來說,交互性很糟糕。
因此這三種算法一般適合用于早期的批處理系統,當然,FCFS算法也常結合其他的算法使用,在現在也扮演著很重要的角色。
總結
以上是生活随笔為你收集整理的6 操作系统第二章 进程管理 处理机调度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nature长文:打破AI黑盒的“持久战
- 下一篇: 毕业设计-基于Python爬虫的疫情数据