操作系統——進程調度算法理解

調度算法分類:

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. 公平分享調度

實時系統調度


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章