操作系统中常用到的进程调度算法

一、先来先服务

最简单的调度算法是先来先服务(FCFS),也称为先进先出(First-In-First-Out,FIFO)或严格排队方案。当每个进程就绪后,它加入就绪队列。当前正在运行的进程停止执行时,选择在就绪队列中存在时间最长的进程运行。


二、轮转法

这是一种基于时钟的抢占策略,以一个周期性间隔产生时钟中断,当中断发生时,当前正在运行的进程被置于就绪队列中,然后基于FCFS策略选择下一个就绪作业的运行。这种技术也称时间片,因为每个进程在被抢占前都给定一片时间。


三、最短进程优先

最短进程优先(Short Process Next,SPN)策略,这是一个非抢占的策略,其原则是下一次选择预计处理时间最短的进程,因此短进程将会越过长作业,跳到队列头。


四、最短剩余时间

最短剩余时间(Shortest Remaining Time,SRT)是针对SPN增加了抢占机制的版本。在这种情况下,调度程序总是选择预期剩余时间最短的进程。当一个进程加入就绪队列时,它可能比当前运行的进程具有更短的剩余时间,因此只要新进程就绪,调度程序就可能抢占当前正在运行的进程。像SPN一样,调度程序在执行选择函数时必须有关于处理时间的估计,并且存在长进程饥饿的危险。


五、最高响应比优先

根据比率:R=(w+s)/s (R为响应比,w为等待处理的时间,s为预计的服务时间)

如果该进程被立即调用,则R值等于归一化周转时间(周转时间和服务时间的比率)。R最小值为1.0,只有第一个进入系统的进程才能达到该值。

  调度规则为:在当前进程完成或被阻塞时,选择R值最大的就绪进程,它说明了进程的年龄。当偏向短作业时,长进程由于得不到服务,等待时间不断增加,从而增加比值,最终在竞争中胜了短进程。

 和STR,SPN一样,使用最高响应比(HRRN)策略需要估计预计服务时间。


六、反馈法

如果没有关于各进程相对长度的任何信息,则SPN,SRT和HRRN都不能使用。另一种导致偏向短作业的方法是处罚运行时间较长的作业,换句话说,如果不能获得剩余的执行时间,那就关注已经执行了的时间。

  方法为:调度基于抢占原则(按时间片)并且使用动态优先级机制。当一个进程第一次进入系统中时,它被放置在一个优先级队列中,当第一次被抢占后并返回就绪状态时,它被放置在下一个低优先级队列中,在随后的时间里,每当被抢占时,它被降级到下一个低优先级队列中。一个短进程很快会执行完,不会在就绪队列中降很多级,一个长进程会逐渐降级。因此新到的进程和短进程优先于老进程和长进程。在每个队列中,除了在优先级最低的队列中之外,都是用简单的FCFS机制,一旦一个进程处于优先级最低的队列中,它就不可能再降级,但会重复的返回该队列,知道运行结束。因此,该队列可按照轮转方式调度。


各种调度算法的特点


参照操作操作系统精髓与设计原理(第七版)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值