CPU调度算法

最近在看操作系统,总结一下CPU的调度算法。
在介绍CPU调度算法之前,首先讨论设计调度算法是需要考虑的几个问题:
1.进程控制块PCB中需要记录哪些信息
2.进程优先级以及就绪队列的组织(动态优先级还是静态优先级)
3.抢占式调度与非抢占式调度
4.I/O密集型与CPU密集型进程
5.时间片(时间片如何选择)

批处理系统中的调度算法

先来先服务(FCFS)

方式:顾名思义,按照进程就绪的先后顺序使用CPU,不可抢占
优点:公平,实现简单
缺点:长进程后面的短进程需要等待很长时间,不利于用户体验
在这里插入图片描述
改变调度顺序:
在这里插入图片描述

最短作业优先(SJF)

方式:具有最短完成时间的进程优先执行,不可抢占
优点:在所有进程同时可以运行时,可以获得最短的平均周转时间
缺点:不公平,长任务长时间得不到资源,产生“饥饿”现象。
在这里插入图片描述

最短剩余时间优先(SRTN)

SJF的可抢占式版本。

最高响应比优先(HRRN)

方式:折衷考虑处理时间和等待时间,通过计算响应比R,选择R最高的进程执行。
在这里插入图片描述
优点:集成了FCFS和SJF的优势。

交互式系统中的调度算法

时间片轮转(RR)

方式:周期性切换,为每一个进程分配一个时间片,时钟中断–>轮换。
难点:时间片选择,太长则退化为FCFS,太短则会因为进程之间的切换浪费CPU时间。
优点:公平,有利于交互式计算,响应时间快
缺点:进程切换导致较高的开销,对于大小不同进程有利,但对于大小相同的进程不如FCFS算法。

最高优先级调度

方式:选择优先级最高的进程投入运行,优先级可以是动态或者静态,按照优先级组织就绪队列
缺点:不公平,对于低优先级任务容易现”饥饿“现象,另外存在优先级反转问题(低优先级进程占有高优先级运行所需资源

多级反馈队列调度

方式:
非抢占:
在这里插入图片描述
最后一个问题,回到队首还是队尾取决于系统对进程的偏好程度。
允许抢占:
当有一个优先级更高的进程就绪时,可以抢占CPU

调度算法比较

在这里插入图片描述

Windows的线程调度算法

不同系统所采用的调度算法:
在这里插入图片描述
Windows线程调度方式:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值