操作系统学习:浅析操作系统进程调度算法(四)

125 阅读2分钟

2、多考虑一些情况

2.1 结合I/O

交互式作业正在执行 I/O 时,其他 CPU 密集型作业将运行,从而更好地利用处理器。

2.2 工作长度未知

事实上,在一个通用的操作系统中,操作系统通常对每个作业的长度知之甚少。因此,我们如何建立一个没有这种先验知识的 SJF/STCF?更进一步,我们如何能够将已经看到的一些想法与 RR 调度程序结合起来,以便响应时间也变得很好?这就是我们接下来要讲的问题:多级反馈队列(MLFQ)调度方法 操作系统学习(二):浅析多级反馈队列MLFQ

3、小结

按照我们介绍的顺序,几种调度算法可以这样串起来:

3.1 各自的优缺点

FIFO 优点:简单

缺点:平均周转时间长(护航问题)

SJF 优点:作业同时到达时,平均周转时间短

缺点:作业不同时到达时,同样面临护航问题

STCF 优点:作业不同时到达时,平均周转时间短

缺点:响应时间长

RR 优点:响应时间短

缺点:平均周转时间长

4、提到的其他技术

4.1 摊销(amortization)

摊销可以减少成本。

当系统某些操作有固定成本时,通常会使用摊销技术(amortization)。通过减少成本的频度(即执行较少次的操作),系统的总成本就会降低。例如,如果时间片设置为 10ms,并且上下文切换时间为 1ms,那么浪费大约 10%的时间用于上下文切换。如果要摊销这个成本,可以把时间片增加到 100ms。在这种情况下,不到 1%的时间用于上下文切换,因此时间片带来的成本就被摊销了。

4.2 重叠(overlap)

如有可能,重叠(overlap)操作可以最大限度地提高系统的利用率。重叠在许多不同的领域很有用,包括执行磁盘 I/O 或将消息发送到远程机器时。在任何一种情况下,开始操作然后切换到其他工作都是一个好主意,这也提高了系统的整体利用率和效率。