作業系統【6】處理機排程
阿新 • • 發佈:2020-10-18
文章目錄
從一個狀態切換到另一個狀態時,會觸發一次 排程 。
- 核心執行排程程式的條件 (滿足一條即可):
(1)一個程序從執行狀態切換到等待狀態。
(2)一個程序終止了。
早期是非搶佔式策略,就是說 排程程式必須等待事件結束。另一種是 搶佔式策略,當前執行的程序可以被換出。
如下圖所示,程序會讓 CPU 進行計算,這是個波動的影象,某個時刻可能佔用 CPU 百分比很高,有時候又很低(可能去做 IO 操作了,CPU處於等待狀態)。
現在要考慮的是如何選擇程序來執行,即 排程演算法,可以使得 CPU 的利用率變得合理。
一、排程準則
- 比較排程演算法的準則
(1) CPU 利用率:
CPU 處於忙狀態所佔事件的百分比。
(認為 CPU 利用率越高,排程演算法效率越高。)
(2)吞吐量:
在單位時間內完成的程序數量。
(3)週轉時間:
一個程序從初始化到結束,包括所有等待時間所花費的時間。
(4)等待時間:
程序在就緒佇列裡的總時間。
(5)響應時間:
從一個請求被提交 到 產生第一次響應所花費的總時間。
人們需要 “更快” 的服務:比如 傳輸檔案時的高頻寬;玩遊戲時的低延遲。所以希望能減少響應時間【是作業系統的計算延遲】(及時處理使用者的輸出並儘快將輸出提供給使用者);減少平均響應時間的波動(在互動系統中,可預測性比高差異低平均更重要);增加吞吐量【是作業系統的計算頻寬】——減少開銷(作業系統開銷、上下文切換)、系統資源的高效利用(CPU、I/O裝置);減少等待時間。
“公平”