📜  操作系统中的列表调度

📅  最后修改于: 2022-05-13 01:56:11.561000             🧑  作者: Mango

操作系统中的列表调度

先决条件 - CPU 调度

列表调度也称为基于优先级列表的调度是一种调度技术,其中通过为进程分配一些优先级来制作有序的进程列表。

所以,基本上发生的事情是,准备好在给定点执行的进程列表被制作出来。然后根据处理器的可用性,即它们是空闲还是忙碌,如果处理器空闲,它们就会选择进程并执行它们。

现在让我们通过一个例子来理解 List Scheduling。

例子:
假设我们有 7 个进程 P1、P2、P3、P4、P5、P6、P7,这样——



  1. P3依赖于P1和P2(P3只有在P1和P2都完成执行后才能开始执行。)。
  2. P4依赖于P3和P6(P4只有在P3和P6都完成执行后才能开始执行。)。
  3. P6 依赖于 P5。

依赖关系如下图所示。

让我们假设我们有两个处理器的约束,并且两个处理器都是空闲的。
由于 P1、P2、P5、P7 是独立的,让我们假设它们最初在就绪列表中等待并准备好执行。

流程的逐步执行:

  1. 我们只有两个空闲处理器,所以让 P1 和 P2 首先执行。
  2. P1 和 P2 退出就绪列表,P3 进入就绪列表。所以P3,P5,P7现在在准备列表中
  3. 让我们假设就绪队列中存在 3 个进程,接下来执行 P3 和 P5,因此 P3 和 P5 离开就绪列表,P6 进入就绪列表。 P4 不会出现在就绪列表中,因为它也依赖于尚未执行的 P6。
  4. P6 和 P7 现在在准备列表中。所以接下来执行 P6 和 P7。
  5. P6 和 P7 离开就绪列表,P4 进入就绪列表,最后 P4 被执行,所有进程终止。

准备清单如下图所示,每一步如下图所示:

所以你可以看到,在 4 个单位时间后,整个过程都被执行了。但是这个时间可能会因操作系统使用的调度机制而异。

显示执行时间的说明取决于所使用的调度算法。



  1. 考虑相同进程开始时首先执行 P5 和 P7 而不是 P1 和 P2 的情况。
  2. 之后 P5 和 P7 退出就绪列表,P6 进入就绪列表。
  3. P1、P2、P6 现在在准备列表中。让 P2 和 P6 被执行。
  4. P2 和 P6 从就绪列表中出来。然后执行 P1。
  5. P1 出现在就绪列表中,P3 出现在就绪列表中,然后 P3 被执行。
  6. 最后执行 P4 并执行所有进程。

此过程的就绪列表如下所示:

所以你可以看到,如果我们改变它们执行的进程的顺序,这次会花费 5 个单位的时间。

优先级是在调度过程开始之前静态确定的。第一步选择优先级最高的进程,第二步选择可能的最佳资源。可以使用的一些调度策略是:

  • 最长路径算法
  • 最长处理时间
  • 关键路径法

算法的目标是最大化CPU利用率并最小化延迟。因此可以根据进程使用哪种调度算法有助于实现这一点。