先决条件: FCFS调度的基础知识( FCFS调度程序|集1 , FCFS调度程序|集2 )
null
护航效应是与先到先服务(FCFS)算法相关的一种现象,在这种算法中,由于进程很少,整个操作系统都会减慢。
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现在处于空闲状态 .
因此,在护航效应中,一个缓慢的进程会降低整个进程集的性能,并导致CPU时间和其他设备的浪费。
为了避免护航效应,可以使用诸如循环调度之类的抢占式调度算法——因为较小的进程不需要等待太多的CPU时间——使它们的执行速度更快,从而减少闲置资源。
参考资料-
- A.Silberschatz,P.Galvin,G.Gagne,“操作系统概念(第8版)”,威利印度私人有限公司。
本文由 桑奇特·阿加瓦尔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END