調度演算法小結

來源:互聯網
上載者:User
處理機管理的工作是對CPU進行合理的分配使用,以提高處理機利用率,並使各使用者公平地得到處理機資源。CPU可分配的資源是在處理器上的執行時間,分配的途徑是調度。
處理機調度的層次:進階調度、低級調度、中級調度

調度演算法就是一種資源分派演算法。有的演算法適用於作業調度,有的演算法適用於進程調度,有的兩者都適應。1) 先來先服務(FCFS/first come first serve)2) 短作業優先(SPF/Shortest Process First)3) 時間片輪轉演算法(Round Robin)4) 優先順序演算法(PS/priority Scheduling)5) 高響應比優先調度演算法(HRNN/Highest Response Ratio Next)6) 多級隊列演算法7) 多級反饋隊列演算法(FB/Multilevel Feedback-Queue scheduling)

以下為轉載內容,轉載地址:http://blog.csdn.net/leves1989/article/details/3305599

【例1】下表給出作業l,2,3的提交時間和已耗用時間。採用先來先服務調度演算法和短作業優先調度演算法,試問作業調度次序和平均周轉時間各為多少?(時間單位:小時,以十進位進行計算。)

作業號

提交時間

已耗用時間

1

2

3

0.0

0.4

1.0

8.0

4.0

1.0

分析 解這樣的題關鍵是要根據系統採用的調度演算法,弄清系統中各道作業隨時間的推進情況。我們用一個作業執行時間圖來形象地表示作業的執行情況,協助我們理解此題。

採用先來先服務調度演算法,是按照作業提交的先後次序挑選作業,先進入的作業優先被挑選。然後按照“排隊買票”的辦法,依次選擇作業。其作業執行時間圖如下:

 

 

 

 

 

    

採用短作業優先調度演算法,作業調度時根據作業的已耗用時間,優先選擇計算時間短且資源能得滿足的作業。其作業執行時間圖如下:

 

 

 

 

 

     

由於作業1,2,3是依次到來的,所以當開始時系統中只有作業1,於是作業1先被選中。在8.0時刻,作業1運行完成,這時系統中有兩道作業在等待調度,作業2和作業3,按照短作業優先調度演算法,作業3隻要運行1個時間單位,而作業2要運行4個時間單位,於是作業3被優先選中,所以作業3先運行。待作業3運行完畢,最後運行作業2。作業調度的次序是1,3,2。

另外,要記住以下公式:
作業i的周轉時間Ti=作業完成時間-作業提交時間
    系統中n個作業的平均周轉時間 ,其中Ti為作業i的周轉時間。

解:採用先來先服務調度策略,則調度次序為1、2、3。

作業號       提交時間      已耗用時間        開始時間        完成時間          周轉時間
1               0.0                            8.0                       0.0                   8.0                8.0
2               0.4                            4.0                       8.0                  12.0                11.6
3               1.0                            1.0                      12.0                 13.0               12.0

平均周轉時間T=(8+11.6+12)/3=10.53

採用短作業優先調度策略,則調度次序為1、3、2。

作業號       提交時間            已耗用時間            開始時間            完成時間            周轉時間
1              0.0                           8.0                      0.0                      8.0                      8.0
3              1.0                           1.0                      8.0                      9.0                       8.0
2              0.4                           4.0                      9.0                      13.0                    12.6

平均周轉時間T=(8+8+12.6)/3=9.53

思考題1
請同學們判斷這句話:作業一旦被作業發送器選中,即佔有了CPU。(  錯  )
提示:需要清楚作業調度和進程調度的區別。

【例2】在一個單道的程式設計系統中,有3個作業J1、J2、J3,它們到達輸入井的時間分別為8:50、9:00、9:30,它們需要執行的時間分別為1.5小時、0.4小時、1小時。系統在10:00按響應比高者優先演算法對它們進行調度,請回答:(1)作業被選中執行的次序是什嗎? (2)每個作業被選中時的響應比分別是多少?
分析 
響應比=作業周轉時間/作業已耗用時間 =1+作業等待時間/作業已耗用時間
系統在10:00,計算作業的響應比:
    以J1為例,它的作業計算時間是1.5小時,即90分鐘;J1從8:50到達輸入井,在10:00時刻,J1的等待時間為70分鐘,因此作業J1的響應比為:1+70分鐘/90分鐘=1.77  
同理,J2:1+60分鐘/24分鐘=3.5    J3:1+30分鐘/60分鐘=1.5
因此按照響應比高者優先演算法,優先調度J2。
在10:24,J2完成。這時計算J1、J3的響應比:
     J1:1+(70+24)分鐘/90分鐘=2.04    J3:1+(30+24)分鐘/60分鐘=1.9  
   按照響應比高者優先演算法,優先調度J1。
    在11:54,J1完成,系統調度J3,J3的響應比為1+(30+24+90)分鐘/60分鐘=3.4 因此,作業被選中執行的次序是J2、J1、J3。
    三個作業被選中時的響應比分別是:J1,2.04;J2,3.5;J3,3.4。

解:(1)作業被選中執行的次序是J2、J1、J3。
         (2)三個作業被選中時的響應比分別是:J1,1.04;J2,2.5;J3,2.4。

思考題2
       
某作業的提交時間為10:30,需要啟動並執行時間為1小時,假設11:00開始調度,它的響應比是     1.5        。

【例3】設有進程A、B、C、D依次進入就緒隊列(相隔一個時間單位),它們的優先順序(優先數大的優先順序較高)如下表所示:

進程

CPU時間

優先數

A

20

3

B

15

1

C

8

4

D

10

3

    試問採用“先來先服務”、“靜態優先數法”調度演算法(註:優先數大的優先順序高),選中進程的執行次序。
解
:採用先來先服務調度演算法,按照進程進入就緒隊列的先後次序佔有CPU,其執行次序是A-B-C-D。
採用靜態優先數法,進程A最先就緒,在0時刻先佔有CPU運行,隨後1時刻進程B進入就緒隊列,2時刻進程C進入就緒隊列,3時刻進程D進入就緒隊列。由於採用靜態優先數法,不容許隨時間的推移改變進程的優先順序,所以當進程A運行結束時,系統的就緒隊列中有B、C、D三個進程,而進程C優先順序最高,於是選中C;這樣分析下去,進程的執行次序是A-C-D-B。

思考題3
    
時間片輪轉調度演算法是為了(  A  )。
   A.多個終端都能得到系統的及時響應     B.先來先服務
   C.優先順序高的進程先使用CPU           D.緊急事件優先處理 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.