Requisitos previos: Fundamentos de la programación de FCFS ( Programa para la programación de FCFS | Conjunto 1 , Programa para la programación de FCFS | Conjunto 2 )
El efecto Convoy es un fenómeno asociado con el algoritmo First Come First Serve (FCFS), en el que todo el sistema operativo se ralentiza debido a algunos procesos lentos.
El algoritmo FCFS es de naturaleza no preventiva, es decir, una vez que se ha asignado tiempo de CPU a un proceso, otros procesos pueden obtener tiempo de CPU solo después de que el proceso actual haya finalizado. Esta propiedad de la programación FCFS conduce a la situación denominada Efecto Convoy.
Supongamos que hay un proceso intensivo de CPU (gran tiempo de ráfaga) en la cola lista, y varios otros procesos con tiempos de ráfaga relativamente menores pero que están vinculados a Entrada/Salida (E/S) (necesitan operaciones de E/S con frecuencia).
Los pasos son los siguientes:
- A los procesos enlazados de E/S se les asigna primero tiempo de CPU. Como consumen menos CPU, se ejecutan rápidamente y pasan a las colas de E/S.
- Ahora, al proceso intensivo de CPU se le asigna tiempo de CPU. Como su tiempo de ráfaga es alto, lleva tiempo completarlo.
- Mientras se ejecuta el proceso intensivo de la CPU, los procesos vinculados de E/S completan sus operaciones de E/S y vuelven a la cola de espera.
- Sin embargo, los procesos enlazados de E/S se hacen esperar ya que el proceso intensivo de la CPU aún no ha terminado. Esto hace que los dispositivos de E/S estén inactivos.
- Cuando termina el proceso intensivo de la CPU, se envía a la cola de E/S para que pueda acceder a un dispositivo de E/S.
- Mientras tanto, los procesos enlazados de E/S obtienen el tiempo de CPU requerido y regresan a la cola de E/S.
- Sin embargo, se les hace esperar porque el proceso intensivo de la CPU sigue accediendo a un dispositivo de E/S. Como resultado, la CPU ahora está inactiva .
Por lo tanto, en Convoy Effect, un proceso lento ralentiza el rendimiento de todo el conjunto de procesos y conduce al desperdicio de tiempo de CPU y otros dispositivos.
Para evitar el efecto Convoy, se pueden usar algoritmos de programación preventiva como la programación por turnos, ya que los procesos más pequeños no tienen que esperar mucho por el tiempo de la CPU, lo que hace que su ejecución sea más rápida y que haya menos recursos inactivos.
Referencias –
- A. Silberschatz, P. Galvin, G. Gagne, “Conceptos de sistemas operativos (8.ª edición)”, Wiley India Pvt. Limitado.
Este artículo es una contribución de Sanchit Agarwal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA