进程调度新要求:响应时间

响应时间

T响应时间 = T首次运行 - T到达时间

引入响应时间的原因:如果使用STCF的调度方式,可以使周转时间最短,但是,如果短任务很多,则没有长任务执行的机会,对长任务来说很“不公平”

轮转

轮转的思想:设置一个时间片,一个进程使用完一个时间片后,切换到下一个进程。

使用轮转算法,执行时间长的任务也有机会尽快的运行,从而较长的任务的响应时间也可以变短。

时间片长度必须是时钟中断周期的倍数。(任务的切换依赖于时钟中断,时钟中断将CPU的控制权交给操作系统)

这看起来又是一个完美的算法,是不是忽略了什么?时间片的长度是多少?

任务切换时,需要进行上下文切换,这是一部分时间成本。如果时间片太短,频繁的上下文切换会占用大量的时间;如果时间片太长,则响应时间也会变长。所以,时间片具体的长度,需要权衡。

轮转的周转时间

如果只考虑响应时间,在时间片合适的情况下,轮转是很好的算法。

现在,再来讨论一下轮转的周转时间

进程编号到达时刻执行时间
0030
1030
2030

暂时不考虑上下文切换的时间成本

如果轮转时间为10,且每一个进程被调度的概率相同,则可能会有下面的运行情况:

时刻01020304050607080
运行的进程012012012
进程编号完成时间
070
180
290

平均周转时间 = (70 + 80 + 90)/3

如果不使用轮转,平均周转时间 = (30 + 60 + 90)/3

可见,如果要考虑周转时间,轮转并不是一个好的算法

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值