← Planificación de la CPU Bloque 9 · Planificación en tiempo real · Tema 33 de 44

Tema 33

Planificación de tareas periódicas

Los sistemas de tiempo real ejecutan tareas periódicas que deben cumplir sus plazos. Rate Monotonic (RM) y Earliest Deadline First (EDF) son los dos algoritmos clásicos para planificarlas. RM asigna prioridades estáticas según el período (más corto = mayor prioridad). EDF asigna prioridades dinámicas según el plazo más cercano. En este tema verás cómo funcionan, la prueba de planificabilidad por utilización y un ejemplo desarrollado.

1. El modelo de tareas periódicas

Una tarea periódica τi se caracteriza por:

ParámetroSímboloSignificado
PeríodoPiTiempo entre instancias consecutivas.
Tiempo de ejecuciónCiTiempo de CPU que necesita cada instancia.
PlazoDiTiempo máximo desde la llegada hasta la terminación. Normalmente Di = Pi (plazo implícito).
UtilizaciónUiCi / Pi. Fracción de CPU que necesita.

Las tareas son independientes (no comparten recursos), preemptibles (se pueden interrumpir) y tienen plazo implícito (Di = Pi).

La utilización total es U = Σ Ui = Σ Ci / Pi. Si U > 1, el sistema no puede cumplir todos los plazos (no hay suficiente CPU).

Plazo implícito

En este tema asumimos que el plazo es igual al período (Di = Pi). Esta es la suposición más común en los sistemas de tiempo real y simplifica el análisis.

2. Rate Monotonic (RM)

Rate Monotonic (RM) es un algoritmo de planificación de tiempo real que asigna prioridades estáticas a las tareas según su período: la tarea con el período más corto tiene la mayor prioridad. Es un algoritmo de prioridades fijas (no apropiativo dentro de la prioridad, pero apropiativo entre prioridades).

RM es óptimo entre los algoritmos de prioridades fijas: si un conjunto de tareas es planificable por algún algoritmo de prioridades fijas, es planificable por RM.

La regla es simple: menor período = mayor prioridad. No depende del tiempo de ejecución, solo del período.

3. Ejemplo de RM

Tres tareas periódicas:

TareaPeríodo (P)Ejecución (C)Utilización (U = C/P)
τ1520,40
τ21030,30
τ31540,27

Prioridades por RM: τ1 (P=5) > τ2 (P=10) > τ3 (P=15). La utilización total es 0,40 + 0,30 + 0,27 = 0,97.

Simulación (LCM de los períodos = 30):

Gantt RM: τ1 se ejecuta primero en cada período, luego τ2, luego τ3. CPU τ1 τ2 τ3 τ1 τ2 τ1 τ3 025910131519
RM: τ1 (período 5) tiene la mayor prioridad y se ejecuta primero en cada período.

En cada período, τ1 se ejecuta primero (2 unidades), luego τ2 (3 unidades), y finalmente τ3 (4 unidades). Todos los plazos se cumplen.

4. Planificabilidad de RM

La pregunta clave es: ¿se pueden cumplir todos los plazos? RM tiene una prueba de planificabilidad basada en la utilización:

Un conjunto de n tareas es planificable por RM si: U ≤ n·(21/n − 1)

El valor n·(21/n − 1) es el límite de utilización para RM. Para n tareas, si la utilización total es menor o igual a este valor, todos los plazos se cumplen. Si es mayor, puede o no ser planificable (hay que verificar con simulación).

Número de tareas (n)Límite de utilización
11,000
20,828
30,780
40,757
50,743
∞ln(2) ≈ 0,693

Para nuestro ejemplo con 3 tareas, el límite es 0,780. La utilización total es 0,97, que es mayor que 0,780. Esto significa que la prueba no garantiza la planificabilidad, pero puede ser planificable (hay que verificar con simulación). En nuestro ejemplo, todos los plazos se cumplieron.

La prueba es suficiente pero no necesaria: si U ≤ límite, es planificable. Si U > límite, puede ser o no planificable (hay que verificar).

5. Earliest Deadline First (EDF)

EDF (Earliest Deadline First) es un algoritmo de planificación de tiempo real que asigna prioridades dinámicas según el plazo más cercano: la tarea con el plazo más cercano tiene la mayor prioridad. Es un algoritmo apropiativo.

EDF es óptimo entre todos los algoritmos de planificación (no solo los de prioridades fijas): si un conjunto de tareas es planificable por algún algoritmo, es planificable por EDF.

La regla es simple: plazo más cercano = mayor prioridad. La prioridad cambia dinámicamente a medida que se acercan los plazos.

EDF es óptimo

EDF es el algoritmo óptimo para tareas periódicas con plazos implícitos: si un conjunto de tareas es planificable por algún algoritmo, es planificable por EDF. Ningún otro algoritmo puede hacerlo mejor.

6. Ejemplo de EDF

Las mismas tres tareas del ejemplo anterior:

TareaPeríodo (P)Ejecución (C)
τ152
τ2103
τ3154

En EDF, las prioridades cambian dinámicamente. En t = 0, los plazos son: τ1 = 5, τ2 = 10, τ3 = 15. Se ejecuta τ1 (plazo más cercano). En t = 2, τ1 termina. Los plazos restantes: τ2 = 10, τ3 = 15. Se ejecuta τ2. En t = 5, τ2 termina. Se ejecuta τ3. En t = 9, τ3 termina. Y así sucesivamente.

En este ejemplo, EDF y RM producen el mismo resultado porque los plazos están ordenados por período (plazo implícito). EDF y RM difieren cuando los plazos no están ordenados por período.

7. Planificabilidad de EDF

EDF tiene una prueba de planificabilidad más simple y más general que RM:

Un conjunto de tareas es planificable por EDF si y solo si: U ≤ 1

Es decir, si la utilización total es ≤ 1 (100 %), todos los plazos se cumplen. Si U > 1, no se pueden cumplir todos los plazos.

Esta prueba es necesaria y suficiente: si U ≤ 1, es planificable; si U > 1, no lo es. No hay casos intermedios.

Para nuestro ejemplo, U = 0,97 ≤ 1, así que es planificable por EDF. Y también por RM (como verificamos por simulación).

EDF es más admisible que RM

EDF puede planificar conjuntos de tareas que RM no puede, porque el límite de EDF (U ≤ 1) es mayor que el de RM (U ≤ n·(2^(1/n) − 1)). Por ejemplo, con 3 tareas, RM admite hasta U = 0,780, mientras que EDF admite hasta U = 1,000.

8. RM vs EDF

AspectoRate Monotonic (RM)Earliest Deadline First (EDF)
Tipo de prioridadEstática (por período)Dinámica (por plazo)
ApropiativoSí (entre prioridades)Sí
OptimalidadÓptimo entre prioridades fijasÓptimo entre todos los algoritmos
Límite de utilizaciónn·(2^(1/n) − 1) ≈ 0,693 (n→∞)1,000
ComplejidadBaja (prioridades fijas)Media (hay que actualizar prioridades)
OverheadBajoMayor (más cambios de contexto)
ImplementaciónSimpleMás compleja
Uso realMuy usado (RTOS)Usado en algunos RTOS

RM es más simple y tiene menos overhead, pero admite menos carga. EDF es más complejo pero admite más carga. La elección depende de los requisitos del sistema.

9. Limitaciones

10. Simulador interactivo

Este simulador ejecuta RM y EDF sobre un conjunto de tareas periódicas y muestra si se cumplen los plazos:

Simulador · RM y EDF

Rate Monotonic

EDF

TareaPeríodoEjecuciónUtilizaciónRM cumple?EDF cumple?

11. Resumen

12. Preguntas de repaso

Intenta responder cada una antes de abrir la respuesta.

1. ¿Qué es Rate Monotonic?

Un algoritmo de tiempo real que asigna prioridades estáticas por período: menor período = mayor prioridad.

2. ¿Qué es EDF?

Earliest Deadline First: asigna prioridades dinámicas por plazo: plazo más cercano = mayor prioridad.

3. ¿Cuál es el límite de utilización de RM para n tareas?

n·(2^(1/n) − 1). Para n→∞, ≈ 0,693.

4. ¿Cuál es el límite de utilización de EDF?

1,000 (100 %).

5. ¿Cuál es más óptimo: RM o EDF?

EDF es óptimo entre todos los algoritmos. RM es óptimo solo entre prioridades fijas.

6. ¿Por qué RM es más usado que EDF en la práctica?

Porque es más simple, tiene menos overhead y las prioridades son estáticas (fáciles de implementar).

7. ¿Qué asumen RM y EDF sobre los plazos?

Que son implícitos: D = P.

8. ¿Qué ocurre si la utilización total supera 1?

No se pueden cumplir todos los plazos: no hay suficiente CPU.

9. ¿Qué asumen RM y EDF sobre las tareas?

Que son independientes (sin recursos compartidos) y preemptibles.

10. ¿Cuándo coinciden RM y EDF?

Cuando los plazos están ordenados por período (plazo implícito). En ese caso, las prioridades son las mismas.

Para practicar

  1. Calcula el límite de utilización de RM para 2, 3, 5 y 10 tareas.
  2. Diseña un conjunto de tareas planificable por EDF pero no por RM.
  3. Simula RM y EDF para las tareas τ1(0,5), τ2(0,8), τ3(0,12) con C=2,3,4.
  4. Explica por qué EDF tiene más overhead que RM.
  5. Investiga cómo SCHED_DEADLINE de Linux implementa EDF.
  6. Explica qué ocurre cuando los plazos no son implícitos.