1. 程式人生 > 實用技巧 >作業系統【6】處理機排程

作業系統【6】處理機排程

文章目錄


從一個狀態切換到另一個狀態時,會觸發一次 排程

  • 核心執行排程程式的條件 (滿足一條即可):
    (1)一個程序從執行狀態切換到等待狀態。
    (2)一個程序終止了。

早期是非搶佔式策略,就是說 排程程式必須等待事件結束。另一種是 搶佔式策略,當前執行的程序可以被換出。


如下圖所示,程序會讓 CPU 進行計算,這是個波動的影象,某個時刻可能佔用 CPU 百分比很高,有時候又很低(可能去做 IO 操作了,CPU處於等待狀態)。
在這裡插入圖片描述
現在要考慮的是如何選擇程序來執行,即 排程演算法,可以使得 CPU 的利用率變得合理。

一、排程準則

  • 比較排程演算法的準則

(1) CPU 利用率:
CPU 處於忙狀態所佔事件的百分比。
(認為 CPU 利用率越高,排程演算法效率越高。)

(2)吞吐量:
在單位時間內完成的程序數量。

(3)週轉時間:
一個程序從初始化到結束,包括所有等待時間所花費的時間。

(4)等待時間:
程序在就緒佇列裡的總時間。

(5)響應時間:
從一個請求被提交 到 產生第一次響應所花費的總時間。

人們需要 “更快” 的服務:比如 傳輸檔案時的高頻寬;玩遊戲時的低延遲。所以希望能減少響應時間【是作業系統的計算延遲】(及時處理使用者的輸出並儘快將輸出提供給使用者);減少平均響應時間的波動(在互動系統中,可預測性比高差異低平均更重要);增加吞吐量【是作業系統的計算頻寬】——減少開銷(作業系統開銷、上下文切換)、系統資源的高效利用(CPU、I/O裝置);減少等待時間。

“公平”