📜  操作系统中的护航效应

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

操作系统中的护航效应

先决条件: FCFS调度基础(FCFS调度程序|设置1,FCFS调度程序|设置2)

护航效应是与先来先服务 (FCFS) 算法相关的现象,在该算法中,由于很少有慢速进程,整个操作系统会变慢。

FCFS 算法本质上是非抢占式的,即一旦 CPU 时间被分配给一个进程,其他进程只有在当前进程完成后才能获得 CPU 时间。 FCFS 调度的这种特性导致了称为 Convoy Effect 的情况。

假设就绪队列中有一个 CPU 密集型(大突发时间)进程,以及其他几个突发时间相对较少但受输入/输出 (I/O) 限制(需要频繁进行 I/O 操作)的进程。



步骤如下:

  • I/O 绑定进程首先分配 CPU 时间。由于它们对 CPU 的占用较少,因此它们很快就会被执行并进入 I/O 队列。
  • 现在,CPU 密集型进程被分配了 CPU 时间。由于它的爆发时间很长,所以需要时间来完成。
  • 在执行 CPU 密集型进程时,I/O 绑定进程完成其 I/O 操作并移回就绪队列。
  • 但是,由于 CPU 密集型进程仍未完成,I/O 绑定进程会等待。这会导致 I/O 设备空闲。
  • 当 CPU 密集型进程结束时,它会被发送到 I/O 队列,以便它可以访问 I/O 设备。
  • 同时,I/O 绑定进程获得所需的 CPU 时间并移回 I/O 队列。
  • 但是,它们需要等待,因为 CPU 密集型进程仍在访问 I/O 设备。结果, CPU 现在处于空闲状态

因此在 Convoy Effect 中,一个缓慢的进程会降低整个进程集的性能,并导致 CPU 时间和其他设备的浪费。

为了避免 Convoy Effect,可以使用像 Round Robin Scheduling 这样的抢占式调度算法——因为较小的进程不必等待 CPU 时间太长——使它们的执行速度更快并导致更少的资源闲置。

参考 -

  • A. Silberschatz、P. Galvin、G. Gagne,“操作系统概念(第 8 版)”,Wiley India Pvt.有限公司