Está en la página 1de 4

Software de tiempo real – UTN – FRBB

Análisis de factibilidad para la planificación


de tareas con restricciones de tiempo real.

En todos los casos se considera que las tareas son periódicas e independientes, y no hay condi-
ciones de precedencia en la ejecución de una con respecto a otra, como así también que la
planificación es con desalojo, es decir, la llegada de una tarea de mayor prioridad que la
actualmente en ejecución da lugar a que la misma sea suspendida y pase a ejecutarse la nueva tarea.
Estas condiciones son similares a las planteadas en [1].

1. Prioridades Fijas.

1.1 Planificación de tareas según Prioridades Monotónicas Crecientes.

1.1.1 Análisis según el peor caso, o condición suficiente (Liu y Layland [1])

Liu y Layland definen el factor de utilización para un conjunto de m tareas, de la siguiente manera:

U = Σ ( Ci / Ti ) Donde: Ci = tiempo de ejecución de la tarea i


i=1
Ti = período entre requerimientos de la tarea i

Una primera condición, necesaria para tener una planificación factible es que: U ≤ 1, es decir
que el sistema no esté saturado.

Luego, como conclusión de una serie de teoremas, Liu y Layland llegan a la conclusión de que para
cualquier conjunto de m tareas independientes, la condición suficiente para tener una planificación
factible es que:

U ≤ m ( 21/m – 1 )

Por ejemplo: m=2 ⇒ U ≤ 0,828


m=3 ⇒ U ≤ 0,78
m=4 ⇒ U ≤ 0,757
......
m=10 ⇒ U ≤ 0,718
......
m→∞ ⇒ U ≤ 0,693

Si bien esta condición es suficiente, y asegura la factibilidad de la planificación, impone una cota
bastante restrictiva en la utilización del procesador (69 %). Por tal motivo, en trabajos posteriores
se ha intentado establecer otros métodos de análisis que permitan alcanzar factores de utilización
más cercanos al 100 %.

1 Mg. G. Friedrich
Software de tiempo real – UTN – FRBB

1.1.2 Análisis según la función trabajo (Lehoczky y otros [2])

Dado un sistema de tiempo real con m tareas independientes: S(m) = { (C1,T1), ..., (Cm,Tm) }

Se define la función trabajo Wi (t) :

Wi (t) : función trabajo para el sistema con i tareas, en el instante t.

Wi (t) = Σ Cj  t / Tj
j=1

Donde: x es el entero igual o mayor que x

La función trabajo mide la cantidad de tiempo de procesador requerido por i tareas en un instante t
determinado.

El análisis se realiza a partir de un instante crítico, es decir, del instante en que todas las tareas son
requeridas simultáneamente, dado que esto representa la peor situación, según lo demostrado en [1].

Por ejemplo, dado un sistema con cuatro tareas:

Tarea Ci Ti
1 2 10
2 4 15
3 6 30
4 10 35

Considerando que las tareas son planificadas según PMC, en el siguiente diagrama temporal se
puede visualizar la evolución del sistema.

T1    
T2   
T3  
T4   

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

Si, a modo de ejemplo, se calcula W3 (17), esto representa la suma de los requerimientos de proce-
samiento para las tareas 1, 2 y 3, acumulados hasta la ranura 17 inclusive.

W3 (17) = Σ Ci 17 / Ti = 2 17 / 10 + 4 17 / 15 + 6 17 / 30 = 2 . 2 + 4 . 2 + 6 . 1 = 18


i=1

2 Mg. G. Friedrich
Software de tiempo real – UTN – FRBB

Esto significa que luego de 17 slots, el sistema con tres tareas todavía no terminó de ejecutar todos
los requerimientos acumulados hasta ese momento (aún le resta ejecutar durante un slot).

A fin de determinar si para un cierto conjunto de m tareas es factible su planificación por PMC,
Lehoczky define un conjunto de instantes Si, denominados “puntos críticos” de la tarea i. Estos
puntos críticos corresponden a los instantes de planificación de la tarea τi, es decir: el vencimiento
de τi o los instantes de arribo de las tareas de mayor prioridad.

Si = { k . T j } donde: j = 1, ..., i ; k = 1, ...., Ti / Tj 

Si en el ejemplo anterior calculamos S3 , obtenemos:

Para j = 1 ⇒ Ti / Tj  = T3 / T1 = 30 / 10  = 3 ∴ k = { 1, 2, 3 } ∴ {k T1}={10,20,30}


j = 2 ⇒ Ti / Tj  = T3 / T2 = 30 / 15  = 2 ∴ k = { 1, 2 } ∴ {k T2}={15, 30}
j = 3 ⇒ Ti / Tj  = T3 / T3 = 30 / 30  = 1 ∴ k = { 1 } ∴ {k T3}={30}

Finalmente: S3 = { 10, 15, 20, 30 }

Asimismo, Lehoczky define las siguientes funciones:

Li (t) = Wi (t) / t

Li = mínimo Li (t) ( ∀ t ∈ Si )

L = máximo Li ( 0 ≤ i ≤ m)

Finalmente, aplicando las definiciones anteriores en [2] se demuestra que para que una tarea o
conjunto de tareas tengan una planificación factible por PMC se deben cumplir las siguientes
condiciones:

(a) La tarea τi podrá completar siempre su ejecución, usando PMC, si y sólo si Li ≤ 1

(b) Todo el conjunto de tareas podrá ser planificado por PMC, si y sólo si L ≤ 1

1.2 Planificación de tareas según Rueda Cíclica Justa (RCJ).


Una alternativa muy simple de planificar tareas en tiempo real es según el criterio de Rueda Cíclica
Justa, o Round-Robin, o Primero en Entrar Primero en ser Servido (PEPS o FIFO). Como en este
otro caso no se sigue un orden de prioridad síno sólo el orden de llegada de los requerimientos, la
condición que se debe cumplir para asegurar que la planificación sea factible es que:

Σ Ci ≤ Tmín

Es decir que si se da un instante crítico, o sea que todas las tareas son simultáneamente requeridas,
debe preverse que las mismas se pueden ejecutar en el peor orden posible, de tal modo que si
aquella tarea con el menor período de requerimientos se ejecuta en último lugar, igualmente alcance
a cumplir con su meta.

3 Mg. G. Friedrich
Software de tiempo real – UTN – FRBB

El factor de utilización que se puede alcanzar con este esquema es bajo. Sin embargo en ocasiones
puede ser aplicado, ya sea para planificar tareas como así también para analizar el tráfico en tiempo
real sobre una red (por. ej: FDDI).

Por ejemplo: dado un sistema de tiempo real con tres tareas: S(3) = { (2,7), (3,11), (2,15) }

Tenemos que: Σ Ci = 2 + 3 + 2 = 7 ≤ Tmín = 7  tiene una planificación factible por RCJ

En este caso el factor de utilización: es de 0,695 y no es posible pasar de allí, dado que no hay
margen para una nueva tarea como así tampoco para extender la duración de alguna de las ya
existentes.

2. Prioridades Dinámicas.
En [1] Liu y Layland también demostraron que en caso de utilizar un esquema de planificación
dinámica, el método óptimo es el denominado “Menor Tiempo al Vencimiento” (MTV). El mismo
consiste en asignar la mayor prioridad a la tarea que se encuentra más cerca de su vencimiento.

La condición de factibilidad es que el factor de utilización sea menor o igual a 1, es decir:

U= Σ ( Ci / Ti ) ≤1
i=1

Si bien este método permite alcanzar una utilización plena del procesador, esto es teórico, debido a
que el costo de ejecución del planificador es bastante superior que para el caso de prioridades fijas.
Esto se debe a que las prioridades deben ser recalculadas permanentemente con la llegada de cada
nuevo requerimiento.

Referencias:
[1] Liu & Layland, “Scheduling algorithms for multiprogramming in a hard real-time
environment”, Journal of the ACM, Vol.20 Nº 1, Jan. 1973, pp. 46-61

[2] Lehoczky, Sha & Ding, “The rate monotonic scheduling: Exact Characterization And Average
Case Behavior”, Proceedings IEEE, May 1989, pp. 166-171

4 Mg. G. Friedrich