进程调度策略有哪几种?

先来先服务

非抢占式的调度算法,按照请求的顺序进行调度。有利于长作业,但不利于短作业,因为短作业必须一直等待前面的长作业执行完毕 才能执行,而长作业又需要执行很长时间,造成了短作业等待时间过长。 另外,对 I/O 密集型进程也不利,因为这种进程每次进行 I/O 操作之后又 得重新排队。

短作业优先

非抢占式的调度算法,按估计运行时间最短的顺序进行调 度。长作业有可能会饿死,处于一直等待短作业执行完毕的状态。因为如果一直有短作业到来,那么长作业永远得不到调度。

最短剩余时间优先

最短作业优先的抢占式版本,按剩余运行时间的顺序进行调度。 当一个新的作业到达时,其整个运行时间与当前进程的剩余时 间作比较。如果新的进程需要的时间更少,则挂起当前进程,运行新的进 程。否则新的进程等待。

时间片轮转

将所有就绪进程按 FCFS 的原则排成一个队列,每次调度时,把 CPU 时间分配给队首进程,该进程可以执行一个时间片。当时间片用完时,由计时器发出时钟中断,调度程序便停止该进程的执行,并将它送往就绪队列的 末尾,同时继续把 CPU 时间分配给队首的进程。

时间片轮转算法的效率和时间片的大小有很大关系:因为进程切换都要保存进程的信息并且载入新进程的信息,如果时间片太小,会导致进程切换 得太频繁,在进程切换上就会花过多时间。 而如果时间片过长,那么实时 性就不能得到保证。

优先级调度

为每个进程分配一个优先级,按优先级进行调度。为了防止 低优先级的进程永远等不到调度,可以随着时间的推移增加等待进程的优先级。

回复

我来回复
  • 暂无回复内容

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部
最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总