排程演算法小結

2021-06-06 00:17:47 字數 3293 閱讀 7460

處理機管理的工作是對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)

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

作業號提交時間

執行時間 1

2 30.0

0.41.0

8.04.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個作業的平均周轉時間

:採用先來先服務排程策略,則排程次序為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

:(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 c8 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.緊急事件優先處理 

排程演算法小結

作業系統全部的排程演算法主要包括 批處理作業排程演算法 程序排程 空閒分割槽分配演算法 虛擬頁式儲存管理中的頁面置換演算法 磁碟排程。1 常見的批處理作業排程演算法 1 fcfs 先來先服務排程演算法 2 spf 短作業優先排程演算法 3 hrf 最高響應比優先演算法 4 hpf 優先順序排程演算法...

LVS排程演算法(上) 靜態排程演算法

lvs的排程方法有十幾中,每種方法的排程標準和適用場景不同。大體有兩大類,分別為固定排程方法或稱為靜態排程方法,另一類是動態排程方法。常用的具體演算法有十種。1 輪詢排程 rr 將所有請求平均的分發到每個集群節點上,即輪流排程。2 加權輪詢排程 wrr 由於不同的伺服器效能不同,因此要考慮讓效能高的...

程序排程演算法(程序排程策略)

程序排程演算法 排程演算法是指 根據系統的資源分配策略所規定的資源分配演算法。一 先來先服務和短作業 程序 優先排程演算法 1.先來先服務排程演算法。先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。fcfs演算法比較有利於長作業 程序 而不利於短...