【從零開始學習計算機科學】操作系統(五)處理器調度
- 處理器調度
- 一些簡單的短程調度算法的思路
- 先來先服務(First-Come-First-Served,FCFS)
- 優先級調度及其變種
- 最短作業優先調度算法(SJF)--非搶占式
- 最短作業優先調度算法(SJF)--搶占式
- 最高響應比優先調度算法
- 輪轉調度算法(RR)
- 多級反饋輪轉調度算法
- 實時系統的調度算法
- 多處理器模型的調度
處理器調度
處理器調度是為了更好的利用處理器,為了評估處理器利用情況和調度功能的性能,我們需要定義一些性能指標。
- CPU 使用率:應使CPU盡可能地忙碌。好的調度策略應該盡可能地提高CPU的利用率。
- 吞吐量:是在一個時間單元內進程完成的數量。對于長進程,吞吐量可能為每小時一個進程;對于短進程,吞吐量可能為每秒十個進程。
- 周轉時間:從進程提交到進程完成的時間段稱為周轉時間。周轉時間為所有時間段之和,包括等待進入內存、在就緒隊列中等待、在 CPU 上執行和 I/O 執行。
- 等待時間:等待時間為在就緒隊列中所有進程等待所花的時間之和。
- 響應時間:對于交互系統,周轉時間不是最佳準則,響應時間更為合理。響應時間是指從用戶提交一個請求開始,直到系統首次產生響應為止的這段時間。
一個進程從創建到執行可能需要經過以下三級調度:長程調度、中程調度和短程調度。
- 長程調度用于從新建態到就掛起/就緒態、從新建態到就緒態的調度;
- 中程調度用于從掛起/阻塞態到阻塞態、從掛起/就緒態到就緒態的調度;
- 短程調度用于從就緒態到執行態的調度。
短程調度程序也叫進程調度,將決定哪一個就緒進程將獲得處理器。進程調度可能發生在3個時機:
- 一個處于運行態的進程結束時,從就緒進程隊列中選擇一個就緒進程運行。
- 當一個正在運行的進程阻塞時