操作系统——先来先服务(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

猜你喜欢

转载自www.cnblogs.com/zhizhizhizhiya/p/12718107.html