調度算法分類:
1. 批處理
2. 交互式
3. 實時
調度算法的目標:
所有系統:公平、策略強制執行、平衡
批處理系統:吞吐量、週轉時間、CPU利用率
交互式:響應時間、均衡性
實時系統:滿足截止時間、可預測性
批處理系統中的調度
1. 先到先服務(FCFS):在所有調度算法中,最簡單的是非搶佔式的FCFS算法。
算法原理:
算法優點:易於理解且實現簡單,只需要一個隊列(FIFO),且相當公平
算法缺點:比較有利於長進程,而不利於短進程,有利於CPU 繁忙的進程,而不利於I/O 繁忙的進程
2. 最短作業優先(SJF):適用於運行時間可以預知的批作業的非搶佔式調度算法
算法原理:
算法優點:相比FCFS 算法,該算法可改善平均週轉時間和平均帶權週轉時間,縮短進程的等待時間,提高系統的吞吐量。
算法缺點:對長進程非常不利,可能長時間得不到執行,且未能依據進程的緊迫程度來劃分執行的優先級,以及難以準確估計進程的執行時間,從而影響調度性能。
3. 最短剩餘時間優先:最短作業優先的搶佔式版本就是最短剩餘時間優先
4. 三級調度:
1>.准入調度:決定那些作業進入系統。
2>.內存調度:決定哪個進程留在內存,而那個進程換出到磁盤。
3>.CPU調度器:在內存中選取下一個將要運行的程序。
算法原理:
交互式系統中的調度
1. 時間片輪轉調度:一種最古老、最簡單、最公平且是使用最廣的算法。
算法原理:讓就緒進程以FCFS 的方式按時間片輪流使用CPU 的調度方式,即將系統中所有的就緒進程按照FCFS 原則,排成一個隊列,每次調度時將CPU 分派給隊首進程,讓其執行一個時間片,時間片的長度從幾個ms 到幾百ms。在一個時間片結束時,發生時鐘中斷,調度程序據此暫停當前進程的執行,將其送到就緒隊列的末尾,並通過上下文切換執行當前的隊首進程,進程可以未使用完一個時間片,就出讓CPU(如阻塞)。
算法優點:時間片輪轉調度算法的特點是簡單易行、平均響應時間短。
算法缺點:不利於處理緊急作業。在時間片輪轉算法中,時間片的大小對系統性能的影響很大,因此時間片的大小應選擇恰當
怎樣確定時間片的大小:
時間片大小的確定
1.系統對響應時間的要求
2.就緒隊列中進程的數目
3.系統的處理能力
2. 優先級調度:每一個進程被賦予一個優先級,率先運行優先級最高的就緒進程。
3. 多重隊列
4. 最短進程優先
5. 保證調度算法
6. 彩票調度算法
7. 公平分享調度
實時系統調度