时间片轮转调度算法的计算

在分时系统中,最简单最常用的就是基于时间片轮转调度算法,时间片轮转调度算法是非常公平的处理机分配方式,让就绪队列的每个进程每次仅运行一个时间片。

1.时间片轮转调度算法的基本原理

   在时间片轮转调度算法中,系统根据先来先服务的原则,将所有的就绪进程排成一个就绪队列,并且每隔一段时间产生一次中断,激活系统中的进程调度程序,完成一次处理机调度,把处理机分配给就绪队列队首进程,让其执行指令。当时间片结束或进程执行结束,系统再次将cpu分配给队首进程。

2.进程切换时机

      时间片尚未结束,进程已经执行结束,立即激活调度程序,将其从就绪队列中删除,在调度就绪队列的队首进程执行,开启新的时间片(计数器置0)。

    时间片已经结束,进程尚未结束,立即激活进程调度程序,未执行完的进程放到就绪队列的队尾。

3.时间片大小的确定

   在轮转调度算法中时间片的大小对系统的性能有很大的影响。若时间片很小,将有利于短作业,其能够在这个时间片内完成。时间片过小意味着会进行频繁的进程切换,这将增大系统的开销。若时间片选择太长,时间片轮转调度算法将退化为先来先服务的进程调度算法。

下面通过一个例题来解释下如何来计算RR调度算法中的完成时间、周转时间、带权周转时间

 

进程名

A

B

C

D

平均

到达时间

0

1

2

3

 

服务时间

30

5

25

10

RR

Q=5

完成时间

 70

 10

 65

 35

 

周转时间

 70

 9

 63

 32

 

带权周转时间

 2.3

 1.8

 2.55

 3.2

 

RR

Q=10

完成时间

 65

 15

 70

 35

 

周转时间

 65

 14

 68

 32

 

带权周转时间

 2.2

 2.8

 2.75

 3.2

 

对于时间片为Q=5我们画一个坐标轴来计算他们的完成时间,那么我们从这4个进程知道这个坐标轴的大小为30+5+25+10=70

0      5     10     15     20      25    30    35   40    45     50    55     60     65     70

     A     B     C    D        A       C     D    A      C     A     C       A          C             A

(1)因为RR首先要按照FCFS算法来一次进行调度,所以首先是ABCD,由于B的服务时间是5所以在第一个时间片就可以完成,所以在第二个时间片中只有ACD三个进程在执行,由于D服务时间为10所以在第二个时间片完成的时候D也执行完成,剩下的就剩下AC二个进程,所以一次按照这个顺序下去,便可以得到它们的完成时间。

知道了完成时间接下来我们就可以求周转时间和带权周转时间
周转时间=完成时间-到达时间

带权周转时间=周转时间/服务时间

(2)对于时间片Q=10我们同样可以算出各进程的完成时间

0    10    15     25    35   45   55   65    70

    A     B      C       D     A     C     A     C


 




  • 45
    点赞
  • 164
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值