Round Robin

Round Robin es uno de los algoritmos de planificación de procesos (CPU Scheduling) y control de redes más antiguos, sencillos y equitativos, diseñado especialmente para sistemas operativos de tiempo compartido.

Su funcionamiento se basa en la asignación equitativa de turnos rotativos: a cada proceso se le otorga un intervalo de tiempo pequeño y predeterminado de ejecución llamado cuanto de tiempo o quantum (por ejemplo, de 10 a 100 milisegundos). Si el proceso finaliza antes de agotar su quantum, libera la CPU voluntariamente; si no termina en ese tiempo, la CPU es interrumpida por hardware (mediante un temporizador) y el proceso es desplazado al final de la cola para ceder el turno al siguiente proceso.

¿Cómo funciona el algoritmo Round Robin?

El ciclo de funcionamiento de Round Robin combina las estructuras de cola FIFO con un control estricto del tiempo mediante interrupciones:

  • Cola circular de listos: Los procesos que llegan al sistema se organizan en una cola de tipo FIFO. El planificador toma siempre el primer proceso de la cola para ejecutarlo.
  • Asignación del Quantum: Se carga un temporizador (timer interrupt) con el valor del cuanto de tiempo asignado y se inicia la ejecución del proceso en la CPU.
  • Rotación o desalojo: Si el quantum expira antes de que el proceso termine, se genera una interrupción de reloj, se guarda el estado del proceso (contexto) y se reubica al final de la cola de listos para esperar su siguiente turno.

Comparativa de algoritmos de planificación

Algoritmo Criterio de selección ¿Usa Quantum / Desalojo? Caso de uso típico
Round Robin (RR) Rotación equitativa por turnos Sí (por interrupción de tiempo) Sistemas operativos interactivos multitarea de tiempo compartido
FCFS (First-Come, First-Served) Orden estricto de llegada (FIFO) No (procesos no desalojables) Sistemas por lotes (batch) o colas simples
SJF (Shortest Job First) Menor tiempo estimado de ejecución Puede ser desalojable o no Optimización teórica del tiempo de espera medio
Priority Scheduling Mayor nivel de prioridad asignada Sí (si llega uno de mayor prioridad) Sistemas operativos de tiempo real o gestión de calidad de servicio (QoS)

Casos de uso principales en informática

Ámbito Descripción del beneficio de Round Robin
Planificación de Sistemas Operativos Permite que múltiples usuarios o aplicaciones compartan la misma CPU de forma aparentemente simultánea, garantizando que ninguna tarea pesada congele el equipo.
Balanceo de Carga en Servidores (Load Balancing) Los balanceadores de red distribuyen las peticiones web entrantes de forma rotativa y equitativa entre un grupo de servidores backend idénticos (Servidor 1, Servidor 2, Servidor 3, y vuelta a empezar).
Enrutamiento y Calidad de Servicio (QoS) En las colas de los routers, se utiliza Round Robin ponderado (WRR) para alternar el reenvío de paquetes de diferentes tipos de tráfico de red y evitar la saturación de un solo flujo.

Características principales:

  • Es un algoritmo de tipo desalojable (preemptive), ya que ningún proceso puede monopolizar la CPU indefinidamente.
  • Evita el fenómeno de inanición (starvation), garantizando que tarde o temprano a todos los procesos les llegue su turno.
  • Su rendimiento depende críticamente del tamaño del quantum elegido (si es muy grande actúa como FCFS; si es muy pequeño, el sistema pierde demasiado tiempo cambiando de contexto).
  • Proporciona una excelente interactividad y buenos tiempos de respuesta para los usuarios.
  • Es la base conceptual sobre la que operan los planificadores modernos en sistemas multitarea.

Analogía: Imagina una partida de un juego de mesa cooperativo donde varios jugadores se sientan en círculo. Cada jugador tiene exactamente un minuto para tirar los dados o mover sus fichas. Al cumplirse el minuto, suena una alarma, se detiene su turno pase lo que pase y el dado pasa obligatoriamente al siguiente jugador de la ronda.

Actividad práctica

Objetivo:

Comprender cómo afecta la elección del tamaño del quantum al rendimiento y a los cambios de contexto en un sistema Round Robin mediante simulación.

Tareas:

  1. Abre tu entorno de desarrollo o editor de código en Python.
  2. Crea un fichero llamado simulacion_rr.py.
  3. Diseña una función simple que reciba una lista de procesos con sus tiempos de ráfaga (burst time) y un valor numérico para el quantum.
  4. Simula las iteraciones de la cola restando el quantum a cada proceso en cada ronda hasta que su tiempo restante sea cero, registrando el orden de ejecución.
  5. Prueba a ejecutar la simulación con un quantum pequeño (ej. 2 unidades) y luego con uno muy grande (ej. 20 unidades), y observa cómo cambia el número total de cambios de turno.

Preguntas de reflexión:

  1. ¿Qué inconveniente principal surge si el tamaño del quantum se configura con un valor extremadamente pequeño (por ejemplo, 1 milisegundo)?
  2. ¿Qué ocurre con el comportamiento del algoritmo Round Robin si el quantum es infinitamente grande o superior a la duración de todos los procesos?
  3. ¿Por qué se considera a Round Robin un algoritmo de planificación de tipo desalojable (preemptive)?
  4. ¿Qué diferencia fundamental existe entre la asignación de turnos de Round Robin y una cola de prioridades estricta?
  5. Además de en los sistemas operativos para la CPU, ¿en qué otro componente de infraestructura de red se aplica habitualmente el concepto de Round Robin?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Qué inconveniente principal surge si el tamaño del quantum se configura con un valor extremadamente pequeño (por ejemplo, 1 milisegundo)?

Se produce un exceso masivo de cambios de contexto (context switching). La CPU dedica más tiempo a guardar y restaurar los registros de los procesos y a gestionar las interrupciones que a ejecutar trabajo útil, degradando notablemente el rendimiento general del sistema (sobrecarga o overhead).


2. ¿Qué ocurre con el comportamiento del algoritmo Round Robin si el quantum es infinitamente grande o superior a la duración de todos los procesos?

El algoritmo Round Robin degenera y se comporta exactamente igual que el algoritmo de planificación FCFS (First-Come, First-Served), ya que los procesos terminarán su ejecución por completo dentro de su primer turno sin ser desalojados.


3. ¿Por qué se considera a Round Robin un algoritmo de planificación de tipo desalojable (preemptive)?

Porque el planificador tiene la capacidad de interrumpir por la fuerza a un proceso que está utilizando la CPU antes de que este finalice su tarea (cuando expira su quantum), obligándolo a ceder el procesador a otro.


4. ¿Qué diferencia fundamental existe entre la asignación de turnos de Round Robin y una cola de prioridades estricta?

En Round Robin todos los procesos son tratados de forma igualitaria mediante turnos rotativos en orden de llegada (equidad temporal). En una cola de prioridades estricta, los procesos con mayor prioridad se ejecutan siempre antes, lo que puede provocar que un proceso de baja prioridad sufra inanición indefinida si siempre llegan tareas prioritarias.


5. Además de en los sistemas operativos para la CPU, ¿en qué otro componente de infraestructura de red se aplica habitualmente el concepto de Round Robin?

En los balanceadores de carga (Load Balancers) situados delante de granjas de servidores web o clústeres de bases de datos, donde las conexiones entrantes se reparten de forma rotativa secuencial entre los diferentes nodos disponibles para equilibrar el tráfico.