不同的CPU调度算法具有不同属性,且可能对某些进程更为有利。
为了选择算法以适用于特定情况,必须分析各个算法的属性。为在不同算法之间进行比较,需要一些重要的评价指标,指标如下:
- CPU使用率:需要使CPU尽可能忙,对真实系统,它应从40%到90%
- 吞吐量:一个时间单元内所完成进程的数量
- 周转时间:从进程提交到完成的时间间隔,是所有时间段之和,包括等待进入内存、在就绪队列中等待、在CPU上执行和I/O执行
- 等待时间:进程在就绪队列中等待时间之和
- 响应时间:从提交请求到产生第一响应时间
人们需要使CPU使用率和吞吐量最大化,而使周转时间、等待时间和相应时间最小化。
在绝大多数情况下,要优化平均度量值。不过,在有的情况下,需要优化最小值或最大值,而不是平均值。
属性 | 先到先服务 | 最短作业优先 | 高响应比优先 | 时间片轮转 | 多级反馈队列 |
---|---|---|---|---|---|
是否支持可抢占 | 否 | 是 | 是 | 是 | 队列内算法不确定 |
是否支持不可抢占 | 是 | 是 | 是 | 否 | 队列内算法不确定 |
优点 | 公平 实现简单 | 平均等待时间较少 效率最高 | 兼顾长短作业 | 兼顾长短作业 | 兼顾长短作业 响应时间较理想 可行性强 |