📜  多级队列 (MLQ) 和多级反馈队列 (MLFQ) CPU 调度算法之间的区别(1)
📅  最后修改于: 2023-12-03 15:37:51.944000             🧑  作者: Mango
多级队列 (MLQ) 和多级反馈队列 (MLFQ) CPU 调度算法之间的区别
多级队列 (MLQ)
多级队列是一种简单的调度算法,它将进程划分为多个等级,每个等级对应一个队列。不同的进程根据其优先级分配到不同的队列中,进程在同一队列中按先进先出原则进行调度。
特点
- 给予高优先级进程更快的响应时间
- 低优先级进程有可能会陷入饥饿状态
- 对于长时间运行的进程,对系统响应会有影响
优缺点
优点
缺点
- 低优先级进程可能会发生饥饿现象
- 对于长时间运行的进程,对系统响应会有影响
- 不适用于实时操作系统
多级反馈队列 (MLFQ)
多级反馈队列是一种动态的调度算法,它将进程划分为多个等级,每个等级对应一个队列。不同的进程根据其优先级分配到不同的队列中,但每个进程从一开始就位于最高优先级的队列中,每次执行完毕后,如果进程未完成,则将其降低一个优先级,直到最后较低的队列。
特点
- 可以提高低优先级进程的响应速度,避免低优先级进程饥饿
- 可以在进程执行时间过长时适当地调整优先级,避免对系统响应造成影响
优缺点
优点
- 有效避免了低优先级进程饥饿的问题
- 对长时间运行的进程有更好的控制,不会影响系统响应
缺点
区别
- 多级队列是一种静态的调度算法,进程优先级在一开始就已经确定,而多级反馈队列是一种动态调度算法,进程优先级根据执行状态进行动态调整
- 多级队列可能会导致低优先级进程饥饿,而多级反馈队列可以有效避免这个问题
- 多级反馈队列的实现比多级队列复杂