操作系统中的车队效应简要介绍

2021年4月2日12:17:49 发表评论 854 次浏览

先决条件:FCFS调度的基础知识(FCFS计划程序|套装1, FCFS计划程序|S2)

车队效应是与"先到先得"(FCFS)算法相关的现象, 其中, 由于很少的缓慢过程, 整个操作系统的速度都会降低。

操作系统中的车队效应1

FCFS算法本质上是非抢占式的, 也就是说, 一旦将CPU时间分配给一个进程, 其他进程就只能在当前进程完成后才能获得CPU时间。 FCFS调度的此属性导致称为"车队效应"的情况。

假设就绪队列中有一个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效应, 可以使用诸如Round Robin Scheduling之类的抢占式调度算法-因为较小的进程不必花太多时间等待CPU时间-可使它们的执行更快, 并减少空闲资源。

参考–

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

如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: