📅  最后修改于: 2023-12-03 15:08:10.886000             🧑  作者: Mango
在多级队列 (MLQ) 调度算法中,进程根据其优先级被放置在不同的队列中,每个队列都有自己的调度算法。当一个进程被放置在一个队列中时,它将被从该队列中取出并运行,直到它完成或者被另一个更高优先级的进程抢占。如果一个进程等待了太长时间,它可能会被提升到一个更高优先级的队列中,以获得更快的CPU时间。
MLQ算法的优点是,能够精确控制进程的优先级,从而确保高优先级进程能够获得足够的CPU时间。然而,它的缺点是,低优先级进程可能会经常被抢占,因为高优先级进程总是排在前面。
在多级反馈队列 (MLFQ) 调度算法中,进程被放置在一个初始队列中,该队列的时间片大小(即可以在该队列运行的最长时间)固定。如果一个进程在一个时间片内完成,它就会被从队列中删除。如果在时间片内未完成,则将被移到下一个级别的队列中,该队列的时间片大小更长。如果进程继续未完成,则将被移到更高一级的队列中,该队列的时间片大小更长。这个过程会一直重复,直到进程被完成或者到达最高级别队列。
MLFQ算法的优点是,可以保证长时间运行的进程不会占用太多的CPU时间,而短时间运行的进程仍然能够快速执行。缺点是,其调度算法更为复杂。
总的来说,MLQ算法更适合需要精确控制进程优先级的场景,而MLFQ算法更适合少量长时间运行的进程和大量短时间运行的进程混合的场景。