處理機管理的工作是對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演算法比較有利於長作業 程序 而不利於短...