常见调度算法总结(对比分析表)

Posted 高、远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见调度算法总结(对比分析表)相关的知识,希望对你有一定的参考价值。

【1】操作系统中常见的一些调度算法对比分析


算法名称算法思想适用调度场景是否可抢占优缺点是否导致饥饿
先来先服务算法(FCFS)按照作业/进程到达的先后次序来进行调度作业调度&进程调度不可抢占优点:简单、算法简单;缺点:作业的平均带权周转时间太长,对于短作业不友好不会
短作业/进程优先算法(SJF/SPF)要求最短的作业/进程先得到调度作业调度&进程调度通常不可抢占,但是有可抢占版本:最短剩余时间优先算法(SRTN)平均周转时间通常是最短的会,如果一直进入短作业,可能长作业会被饿死
高响应比优先算法(HRRN)每次调度前就算每个作业/进程的响应比,响应比高的优先得到调度作业调度&进程调度非抢占式算法,当前作业/进程主动放弃cpu使用才需调度综合考虑了等待时间和服务时间,对于长作业来说,随着等待时间增长,响应比也会增长,不会出现饥饿现象不会
轮转调度算法(RR)每个进程最多执行一个时间片长度,没执行完就保存结果,并存放到就绪队列,接着执行下一个进程进程调度抢占式非常公平的分配方式,利于进行人机交互不会
优先级调度算法根据优先级来进行调度(静态/动态优先级)进程调度根据需求,可以是抢占式,可以使非抢占式考虑了进程任务的紧迫性会,如果一个进程优先级太低,可能不会被执行
多级反馈队列(multileved feedback queue)(公认较好的进程调度算法)1.将以往的一个就绪队列设置为多个就绪队列(n个),并使队列的优先级依次递减,时间片依次递增。2. 每个队列采用FCFS算法,若在该时间片内完成就撤离系统,否则加入下一队列,若排到最后的一个队列第n队列,则采用RR算法执行。若高优先级的队列没有任务执行,才能执行低优先级队列中的任务,如果正在执行低优先级的任务,来了一个高优先级的任务,直接暂停低优先级任务,执行高优先级任务进场调度抢占式不必事先知道进程的所需执行时间,思想虽然先进,却较为复杂通常不会

以上是关于常见调度算法总结(对比分析表)的主要内容,如果未能解决你的问题,请参考以下文章

JS排序算法总结:八种算法对比

七种常见的排序算法总结

常用调度算法总结

常见算法总结 - 链表篇

几种进程调度算法总结

链表类常见算法题总结