① FSFS ,SJF ,HRN演算法實例
1、設在單道批處理系統中有四道作業,它們提交的時刻及運行時間如下:
作業號 提交時刻(h) 運行時間(h)
1 8.0 1.0
2 8.5 0.5
3 9.0 0.2
4 9.1 0.1
請分別給出在演算法FCFS、SJF和HRN中這組作業的調度順序、平周轉時間和平均帶權周轉時間。
【解答】
FCFS演算法調度順序:1,2,3,4,作業運行情況如下表
作業號 開始時間 完成時間 周轉時間 帶權周轉時間
1 8.0 9.0 1.0 1.0
2 9.0 9.5 1.0 2.0
3 9.5 9.7 0.7 3.5
4 9.7 9.8 0.7 7.0
平均周轉時間T=(1.0+1.0+0.7+0.7)/4=0.85
平均帶權周轉時間W=(1.0+2.0+3.5+7.0)/4=3.375
SJF演算法調度順序:1,3,4,2,作業運行情況如下表
作業號 開始時間 完成時間 周轉時間 帶權周轉時間
1 8.0 9.0 1.0 1.0
2 9.3 9.8 1.3 2.6
3 9.0 9.2 0.2 1.0
4 9.2 9.3 0.2 2.0
平均周轉時間T=(1.0+1.3+0.2+0.2)/4=0.675
平均帶權周轉時間W=(1.0+2.6+1.0+2.0)/4=1.65
HRN演算法調度順序:1,2,4,3,作業運行情況如下表
作業號 開始時間 完成時間 周轉時間 帶權周轉時間
1 8.0 9.0 1.0 1.0
2 9.0 9.5 1.0 2.0
3 9.6 9.8 0.8 4.0
4 9.5 9.6 0.5 5.0
平均周轉時間T=(1.0+1.0+0.8+0.5)/4=0.825
平均帶權周轉時間W=(1.0+2.0+4.0+5.0)/4=3.0
② 如何理解先來先服務fcfs和短作業優先sjf進程調度演算法
先來先服務FCFS和短作業優先 和短作業優先SJF進程調度演算法 先來先服務 和短作業優先 進程調度演算法 1、實驗目的 通過這次實驗,加深對進程概念的理解,進一步掌握進程狀態的 轉變、進程調度的策略及對系統性能的評價方法。 2、需求分析 (1) 輸入的形式和輸入值的范圍 輸入值:進程個數Num 依次輸入Num個進程的到達時間 依次輸入Num個進程的服務時間 范圍:0<Num<=100 范圍: 范圍: 輸入要使用的演算法(1-FCFS,2-SJF) 范圍:1或者2 輸出的形式( 表示變數) (2) 輸出的形式(X表示變數) 時刻X:進程X開始運行。 其完成時間:X 周轉時間:X 帶權周轉時 間:X …(省略(Num-1)個) 平均周轉時間:X 平均帶權周轉時間:X (3) 程序所能達到的功能 輸入進程個數Num,每個進程到達時間ArrivalTime[i],服務時間 ServiceTime[i]。採用先來先服務FCFS或者短作業優先SJF進程調度算 法進行調度,計算每個進程的完成時間、周轉時間和帶權周轉時間, 並且統計Num個進程的平均周轉時間和平均帶權周轉時間。 3、概要設計 說明本程序中用到的所有抽象數據類型的定義、 主程序的流程以 及各程序模塊之間的層次(調用)關系。 4、詳細設計 5、調試分析 (1)調試過程中遇到的問題以及解決方法, (1)調試過程中遇到的問題以及解決方法,設計與實現的回顧討 調試過程中遇到的問題以及解決方法 論和分析 1 ○ 開始的時候沒有判斷進程是否到達, 導致短進程優先演算法運 開始的時候沒有判斷進程是否到達, 行結果錯誤,後來加上了判斷語句後就解決了改問題。 行結果錯誤,後來加上了判斷語句後就解決了改問題。 2 ○ 基本完成的設計所要實現的功能, 總的來說, FCFS編寫容易, 基本完成的設計所要實現的功能, 總的來說, FCFS編寫容易, 編寫容易 SJF 需要先找到已經到達的進程, 需要先找到已經到達的進程, 再從已經到達的進程里找到進程服務時 間最短的進程,再進行計算。 間最短的進程,再進行計算。 (2)算 (2)演算法的改進設想 改進: 改進:即使用戶輸入的進程到達時間沒有先後順序也能准確 的計算出結果。(就是再加個循環,判斷各個進程的到達時間先後, 的計算出結果。(就是再加個循環,判斷各個進程的到達時間先後, 。(就是再加個循環 組成一個有序的序列) 組成一個有序的序列) (3)經驗和體會 (3)經驗和體會 通過本次實驗, 通過本次實驗,深入理解了先來先服務和短進程優先進程調 度演算法的思想,培養了自己的動手能力,通過實踐加深了記憶。 度演算法的思想,培養了自己的動手能力,通過實踐加深了記憶。