常见调度算法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

操作系统为了帮助用户完成更多的任务,所以有了调度算法。本文介绍了常用的调度算法。

一、操作系统中常见的调度算法

  • 先来先服务(FCFS,First-Come First-Served)
  • 短进程优先(SPF,Short Process First)
  • 优先权(PSA,Priority-scheduling algorithm)
  • 高响应比优先(HRRN,Highest ResponseRatio Next)
  • 时间片轮转(RR,Round-Robin)
  • 多级反馈队列(Multileved Feedback Queue)

二、各种调度算法的优缺点

1.先来先服务

调度策略

根据进程进入就绪状态的先后顺序调度进程,通过FIFO队列实现。

优点

简单易于实现

缺点

  • 平均等待时间往往比较长且变化也会很大
    (短进程排在长进程的后面,导致平均等待时间长;如果进程的CPU执行时间变化很大,那么平均等待时间的变化也会很大)
  • I/O资源和CPU资源的利用率较低
    (可能会导致一些进程都在等待CPU空闲或者I/O空闲)

2.短进程优先

调度策略

选择就绪队列中执行时间最短进程占用CPU进入运行状态,特点:就绪队列按预估值的执行时间来排序

优点

  • 降低了短进程的等待时间,平均周转时间和平均带权周转时间小
  • 提高系统的吞吐量

缺点

  • 对长进程非常不利,可能长时间得不到执行
  • 未能依据进程的紧迫程度来划分执行的优先级
  • 难以准确估计进程的执行时间,从而影响调度性能

3.优先权

调度策略

选择就绪队列中优先级最高的进程投入运行,算法分类:(1)抢占式优先权算法:可抢占当前运行进程CPU的使用权(2)非抢占式优先权算法:仅发生在进程放弃CPU。优先权类型:(1)静态优先权:一但分配就不再改变(2)动态优先权:优先权可以动态变化

优点

算法可以体现进程的紧急程度,非常适合实时系统

缺点

会产生无穷阻塞问题

4.高响应比优先

调度策略

选择就绪队列中响应比最高进程占用CPU进入运行状态,响应比R(优先权) = (等待时间 + 要求服务时间)/ 要求服务时间

5.时间片轮转

调度策略

时间片结束时,按FCFS算法切换到下一个就绪进程

缺点

时间片设置的过短会导致过多的进程间的切换,降低CPU的使用效率;设置的过长对导致对短的交互请求响应变差

6.多级反馈队列

调度策略

  1. 设置多个就绪队列,队列的优先级递减且队列的时间片大小也不同
  2. 首先调度高优先级队列里的进程,如果次进程在时间片内不能运行完,则将它加入下一个队列
  3. 在低优先级队列中的进程在运行时,又有新到达的作业,那么在运行完这个时间片后,CPU马上分配给新作业,及抢占式调度

优点

  • 兼顾I/O密集和CPU密集型进程
  • I/O密集型进程停留在高优先权,能得到很快响应
  • CPU密集型进程的优先权下降很快,获得了更长的时间片,在有限时间执行完成,减少了进程上下文切换次数

缺点

算法相对复杂

总结

本文简单介绍了操作系统中的6中常用调度算法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值