專題四 進程的調度(未完)

4.進程的調度

4.1 進程調度概念

1. 進程的調度:
合適的時候,以一定的策略選擇一個就緒進程運行

2. 調度時考慮的問題:
– 調度的時機
– 調度的策略
– 調度的目標:

調度的目標:
– 響應速度儘可能快
– 進程處理的事件儘可能短
– 系統吞吐量儘可能大
– 資源利用率儘可能高
– 對所有進程要公平
– 避免飢餓
– 避免死鎖

3. 調度性能評價標準
(1)CPU利用率
(2)吞吐量
(3)週轉時間:進程提交給計算機到最終完成所花費的時間

– 週轉事件&平均週轉時間
– 帶權週轉時間&帶權平均週轉時間: 帶權週轉時間 = 週轉時間 / 實際運行時間

(4)就緒等待時間
(5)響應時間

4.2 典型調度算法

1. 先來先服務(FCFS)
– 按照作業進入系統的時間先後來挑選作業,先進入系統的作業優先被運行
– 缺點:效率較低(如:短作業排在隊尾的時候)

2. 短作業優先算法(SJF)
– 參考運行時間,選取運行時間最短的作業投入運行
– 優劣勢:短作業優先法能夠有效地降低作業的平均等待時間和提高系統的吞吐量(對於長作業,易出現資源“飢餓”的現象

3. 高響應比優先法(HRRF)
– 高響應比 = (響應時間 + 服務時間) / 服務時間
– 定義:在調度進行時,以各進程的響應比作爲其優先級,從中選出級別最高的進程投入運行

4. 優先級法
– 定義:根據進程優先級數,把CPU分配給最高的進程
– 進程優先數 = 靜態優先數 + 動態優先數
– 靜態優先數:在創建進程時就確定下來,而且在進程的整個運行期間保持不變

靜態優先數的確定:
– 基於進程所需要的資源多少
– 基於程序運行時間的長短
– 基於進程的類型

– 動態優先數:隨着進程的推進而不斷改變的

動態優先數的確定:
– 當使用CPU超過一定時長時
– 當進程等待超過一定時長時
– 當進行I/O操作時

5. 循環輪轉調度法(RR)
– 設計思想:
(1)把所有就緒進程按先進先出的原則排成隊列
(2)進程以時間片爲單位輪流使用CPU,則運行一個時間片的進程排到隊列末尾等候下一輪進行
在這裏插入圖片描述

兩種極端
– 時間片過長:退化爲FCFS算法
– 時間片過段:進程頻繁切換,系統開銷增大

4.3 Linux進程調度

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章