多级队列调度 (MLQ) 和先到先服务 (FCFS) 的区别
1.多级队列调度(MLQ):
只有一个队列并安排所有进程是相当困难的。这是使用多级队列调度的地方。在这种情况下,根据进程的属性(如系统进程、I/O 进程等)将进程分为不同的类。因此,我们为 n 类进程获得了“n”个队列。每个队列都有一个优先级,可以使用自己的调度算法,方便同时使用多种调度算法。通常,队列的最高级别具有最高优先级,随着我们移动到较低级别而降低。如果上层比下层具有绝对优先级,则它是非抢占式的,否则如果时间片在各个队列之间划分,则它本质上是抢占式的。
优点 :
该算法的主要优点是我们可以在不同的队列中同时使用FCFS、SSJF、LJF等多种算法。
缺点:
最低级别的进程遭受饥饿问题。
- 先到先服务 (FCFS) 调度算法:
它是最简单的非抢占式调度算法。在先到先服务 (FCFS) 中,进程按照到达的顺序分配给 CPU。队列数据结构用于实现FCFS调度算法。当 CPU 空闲时,处于就绪队列头部的进程被分配给 CPU。然后从队列中删除正在运行的进程。当一个新进程进入就绪队列时,它被放到就绪队列的尾部。
FCFS 和多级队列调度的区别:
先到先服务 (FCFS) | 多级队列调度 |
---|---|
先到先服务(FCFS)是一种非抢占式调度算法。 | MLQ 可以是非抢占式或抢占式,具体取决于条件。 |
先到先服务 (FCFS)按照到达时间的升序执行这些进程。进程的执行取决于进程所属的特定队列级别的优先级。 | 进程的进一步选择基于特定队列中使用的算法类型。 |
FCFS 的开销最小。 | MLQ 有一些 CPU 开销,因为它需要在队列之间切换。 |
先到先服务调度算法为进程提供了高响应时间。 | 响应时间可能长或短,取决于多级队列的各个级别中使用的算法。 |
FCFS在分时系统中使用不方便。 | 多级队列调度可以根据需要在任何系统中实施。 |
在先到先服务调度算法中,平均等待时间通常不是最短的。 | 平均等待时间取决于不同级别队列中使用的算法。 |
先到先服务 (FCFS)是最简单的算法类型。 | 算法复杂,难以实现。 |
先到先服务 (FCFS)导致护航效应。 | 多级队列调度导致较低级别的进程饥饿。 |