Algoritmo de programación Round Robin con ejemplo

⚡ Resumen inteligente

La planificación Round-Robin es el algoritmo de CPU preventivo más antiguo y sencillo, en el que cada proceso listo se ejecuta durante un intervalo de tiempo fijo en una cola cíclica, lo que garantiza una ejecución justa y sin inanición para la multitarea.

  • 🔄 Definición: Cada tarea lista se ejecuta por turnos durante un intervalo de tiempo fijo.
  • 🇧🇷 Cuanto de tiempo: La CPU cambia de proceso después de un intervalo fijo, el cuanto de tiempo.
  • 🇧🇷 Justicia: Todos los procesos reciben el mismo tiempo de CPU, evitando así la inanición.
  • 🧮 Con derecho preferente: Un proceso interrumpido se mueve al final de la cola.
  • Ventajas: Asignación equitativa, sin efecto convoy, tiempo de respuesta predecible.
  • ⚠️ Inconvenientes: El rendimiento depende del cuanto de tiempo y añade la sobrecarga del cambio de contexto.

Algoritmo de programación round robin

¿Qué es la programación por turnos?

El nombre de este algoritmo proviene del principio de round-robin, donde cada persona recibe una parte igual de algo por turnos. Es el algoritmo de programación más antiguo y simple, que se utiliza principalmente para realizar múltiples tareas.

En la planificación Round-robin, cada tarea lista se ejecuta por turnos en una cola cíclica durante un intervalo de tiempo limitado. Este algoritmo también ofrece una ejecución de procesos sin inanición.

Características de la programación por turnos

Estas son las características importantes de la programación por turnos:

  • El algoritmo round robin es un algoritmo preventivo.
  • La CPU pasa al siguiente proceso después de un intervalo de tiempo fijo, que se denomina cuanto de tiempo o segmento de tiempo.
  • El proceso que se adelanta se agrega al final de la cola.
  • El sistema round robin es un modelo híbrido que funciona mediante reloj.
  • El intervalo de tiempo debe ser el mínimo, asignado a una tarea específica que requiere procesamiento. Sin embargo, puede variar según el sistema operativo.
  • Se trata de un algoritmo en tiempo real que responde al evento dentro de un límite de tiempo específico.
  • El algoritmo round robin es uno de los más antiguos, justos y sencillos.
  • Es un método de planificación muy utilizado en los sistemas operativos tradicionales.

Ejemplo de programación por turnos

Consideremos los siguientes tres procesos:

Cola de proceso Tiempo quemado
P1 4
P2 3
P3 5

Programación por turnos

Paso 1) La ejecución comienza con el proceso P1, que tiene un tiempo de ráfaga 4. Aquí, cada proceso se ejecuta durante 2 segundos. P2 y P3 todavía están en la cola de espera.

Programación por turnos

Paso 2) En el tiempo = 2, P1 se agrega al final de la cola y P2 comienza a ejecutarse.

Programación por turnos

Paso 3) En el tiempo = 4, P2 es interrumpido y agregado al final de la cola. P3 comienza a ejecutarse.

Programación por turnos

Paso 4) En el tiempo = 6, P3 es interrumpido y agregado al final de la cola. P1 comienza a ejecutarse.

Programación por turnos

Paso 5) En el tiempo = 8, P1 tiene un tiempo de ráfaga de 4. Ha completado su ejecución. P2 comienza su ejecución.

Programación por turnos

Paso 6) P2 tiene un tiempo de ráfaga de 3. Ya se ha ejecutado durante 2 intervalos. En el tiempo = 9, P2 finaliza su ejecución. Luego, P3 comienza su ejecución hasta que finaliza.

Programación por turnos

Paso 7) Calculemos el tiempo de espera promedio para el ejemplo anterior.

Wait time
P1 = 0 + 4 = 4
P2 = 2 + 4 = 6
P3 = 4 + 3 = 7

Ventajas de la programación Round-robin

Estas son las ventajas y beneficios del método de programación Round-robin:

  • No se enfrenta a los problemas de hambruna o efecto convoy.
  • Todos los trabajos reciben una asignación justa de CPU.
  • Se ocupa de todos los procesos sin ninguna prioridad.
  • Si conoce el número total de procesos en la cola de ejecución, también puede asumir el tiempo de respuesta en el peor de los casos para el mismo proceso.
  • Este método de planificación no depende del tiempo de ráfaga. Por eso es fácil de implementar en el sistema.
  • Una vez que se ejecuta un proceso durante un conjunto específico de períodos, el proceso se adelanta y se ejecuta otro proceso durante ese período de tiempo determinado.
  • Permite que el sistema operativo utilice el método de cambio de contexto para guardar los estados de los procesos interrumpidos.
  • Ofrece el mejor rendimiento en términos de tiempo medio de respuesta.

Desventajas de la programación por turnos

Estas son las desventajas/inconvenientes de usar la planificación Round-robin:

  • Si el tiempo de segmentación del sistema operativo es bajo, la potencia del procesador se verá reducida.
  • Este método dedica más tiempo al cambio de contexto.
  • Su rendimiento depende en gran medida de la cantidad de tiempo.
  • No se pueden establecer prioridades para los procesos.
  • La planificación por turnos rotativos no da prioridad especial a las tareas más importantes.
  • Disminuye la comprensión.
  • Un cuanto de tiempo menor da como resultado una mayor sobrecarga de cambio de contexto en el sistema.
  • En este sistema, encontrar un cuanto de tiempo correcto es una tarea bastante difícil.

Latencia en el peor de los casos

Este término se utiliza para el tiempo máximo necesario para la ejecución de todas las tareas.

  • dt = Indica el tiempo de detección cuando una tarea se agrega a la lista.
  • st = Indica el tiempo de cambio de una tarea a otra
  • et = Indica el tiempo de ejecución de la tarea

Fórmula:

Tworst = {(dti+ sti + eti ), + (dti+ sti + eti )2 +...+ (dti+ sti + eti )N., + (dti+ sti + eti  + eti) N} + tISR
tISR = sum of all execution times

Preguntas Frecuentes

El cuanto de tiempo, o segmento de tiempo, es el tiempo fijo de CPU que cada proceso ejecuta antes de ser interrumpido. Un valor demasiado grande se comporta como FCFS (primero en entrar, primero en salir); un valor demasiado pequeño añade una sobrecarga considerable al cambio de contexto.

FCFS ejecuta cada proceso hasta su finalización en el orden de llegada y no es apropiativo. Round Robin es apropiativo: asigna a cada proceso un intervalo de tiempo fijo y recorre la cola en ciclos, lo que mejora el tiempo de respuesta y evita que los trabajos largos bloqueen a otros.

Dado que cada proceso se coloca en una cola cíclica y recibe un intervalo de tiempo fijo por turno, ningún proceso se omite ni se retrasa indefinidamente, por lo que todos terminan obteniendo tiempo de CPU independientemente de su duración o del orden de llegada.

La IA y el aprendizaje automático pueden predecir el comportamiento de los procesos y los patrones de carga de trabajo para optimizar las decisiones de planificación en tiempo real. En lugar de una política fija, el sistema puede adaptar dinámicamente las prioridades y los intervalos de tiempo, mejorando la utilización de la CPU, el rendimiento y el tiempo de respuesta.

Sí. Los modelos de IA pueden analizar los tiempos de respuesta anteriores y la carga del sistema para sugerir un intervalo de tiempo óptimo y ajustarlo según cambien las condiciones. Esto equilibra mejor la sobrecarga del cambio de contexto con el tiempo de respuesta que un único valor fijo.

Resumir este post con: