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