⑴ 最短作業優先演算法
以下是最短作業優先演算法
最短作業優先調度演算法是對預計執行時間短的作業(進程)優先分派處理機,通常後來的短作業不搶先正在執行的作業。這種演算法稱為這種演算法會根據作業長短,也就是作業服務時間的多少來調度作業,服務時間短的會被優先調度執行。

通常情況下,對於簡單的時間觸發式調度器來說,待命任務列表的數據結構的設計要盡可能縮短最壞情況下,程序在調度器關鍵部分的執行時間,以防止其他任務一直在待命列表中,無法及時執行。
因此,在這種調度器中,應盡可能避免搶占式任務,甚至應該關閉調度器之外的所有中斷。當然,待命任務列表的數據結構也應根據這個系統需要的最大任務數量做進一步的優化。
⑵ 挑戰408——操作系統(8)——典型的調度演算法
調度演算法是操作系統中用於合理分配處理機資源的關鍵技術。在面對如何提高CPU利用率的問題時,不同的系統依據其設計目標選擇不同的調度方式。常見的調度演算法包括先來先服務(FCFS)、短作業優先(SJF或SPF)、高響應比優先(HRRN)、優先順序調度(Priority)、時間片輪轉(RR)以及多級反饋隊列(MFQ)。
先來先服務(FCFS)
FCFS演算法簡單明了,其核心思想是按照程序到達的先後順序進行調度,類似於隊列的先進先出原則。它適合作業調度與進程調度,每次從就緒隊列中選擇最先進入隊列的進程分配處理機。該演算法雖然表面上看起來公平,但長作業的突然到來會導致短作業長期等待,不利於I/O繁忙作業的處理,常作為其他調度策略的輔助手段。
短作業優先(SJF或SPF)
SJF演算法通過選擇預計運行時間最短的進程進行調度,以減少作業或進程的平均周轉時間。同樣適用於作業調度和進程調度。然而,這種方法可能不利於長作業,容易導致飢餓現象,並未考慮作業的緊迫程度。
高響應比優先(HRRN)
HRRN演算法綜合了FCFS和SJF的特性,考慮每個作業的等待時間和估計運行時間。通過響應比(周轉時間/運行時間)來衡量作業的優先順序,實現對作業調度的動態平衡。
優先順序調度(Priority)
優先順序調度演算法旨在滿足緊急進程的及時處理,支持作業調度和進程調度。靜態優先順序在進程創建時確定,保持不變;動態優先順序隨進程執行情況動態調整,以優化系統性能。
時間片輪轉(RR)
RR演算法主要用於進程調度,常用於分時系統。通過將就緒進程按FCFS原則排序,每次分配固定時間片的處理機資源。時間片過長導致退化為FCFS,過短則增加用戶響應時間,特別不利於I/O頻繁的進程。
多級反饋隊列(MFQ)
MFQ演算法設置多個優先順序不同的就緒隊列,優先順序越高,時間片越短。進程按FCFS原則加入最高優先順序隊列,若未完成,則依次移至較低優先順序隊列。此演算法結合了前幾種演算法的優點,但需注意避免前隊列長期阻塞導致後續隊列飢餓。
調度演算法比較
通過綜合對比各類調度演算法,可以清晰地看到它們在公平性、響應時間、資源利用率等方面的差異。選擇合適的調度演算法取決於系統的目標、資源狀況和應用需求。