操作系統——先來先服務(FCFS)和短作業優先(SJF)調度算法


例題:  

計算在單CPU環境下,采用FCFS調度算法、SJF優先調度算法時的平均周轉時間和平均帶權周轉時間,並指出它們的調度順序。

進程號

到達時刻

服務時間(小時)

A

9:00

2

B

9:30

1

C

9:40

0.5

D

10:30

0.4

 

 

 

 

 

 

 

 

 

 

公式:

           周轉時間 = 完成時間 - 到達時間

           帶權周轉時間 = 周轉時間 / 服務時間

           平均周轉時間 = 周轉時間 / 進程數量

           平均帶權周轉時間 = 帶權周轉時間 / 進程數量

完成時間的計算方法不同,分別如下:

 

先來先服務(FCFS)調度算法:

FCFS調度順序:A、B、C、D先來先服務

FCFS完成時間:A(完成時間)=A(到達時間)+A(服務時間)=9+2=11

                          B(完成時間)=A(完成時間)+B(服務時間)=11+1=12

                          C(完成時間)=B(完成時間)+C(服務時間)

                          D(完成時間)=C(完成時間)+D(服務時間)

(該進程完成時間 =上一進程的完成時間 + 這個進程的服務時間)

單位要轉化

進程號 到達時刻 服務時間(小時) 開始時間 完成時間 周轉時間(小時) 帶權周轉時間
A 9:00 2 9 11 2 1
B 9:30 1 11 12 2.5 2.5
C 9:40 0.5 12 12:30 2.83 5.66
D 10:30 0.4 12:30 12:54 2.4 6

 

 

 

 

 

 

 

 

平均周轉時間:(2+2.5+2.38+2.4)/4=2.32

平均帶權周轉時間:(1+2.5+5.66+6)/4=3.79

 

短作業優先(SJF)調度算法:

SJF調度順序:A、D、C、B

SJF完成時間:   A(完成時間)=A(到達時間)+A(服務時間)

                           D(完成時間)=A(到達時間)+D(服務時間)

                           C(完成時間)=D(到達時間)+C(服務時間)

                           B(完成時間)=C(到達時間)+B(服務時間)

 

進程號 到達時刻 服務時間(小時) 開始時間 完成時間 周轉時間(小時) 帶權周轉時間
A 9:00 2 9 11 2 1
B 9:30 1 11:54 12:54 3.4 3.4
C 9:40 0.5 11:24 11:54 2.4 4.8
D 10:30 0.4 11 11:24 0.9 2.25

 

 

 

 

 

 

 

 

平均周轉時間:     (2+3.4+2.45+0.9)/4=2.6875

平均帶權周轉時間: (1+3.4+4.8+2.25)/4=2.8625

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM