1. Introducción

Anuncio
1. Introducción
1.1 Sistemas de tiempo real
El problema del tiempo ha tenido presencia en toda la historia de la filosofía, ya
desde sus inicios. Las diversas soluciones dadas al problema, desde un punto de vista
exclusivamente especulativo han sido muchas y variadas a lo largo de la historia,
además claramente decepcionares a la hora de su demostración práctica. Toda la
mentalidad filosófica del tiempo cambió al ser tratado un problema desde un análisis
científico.
El tiempo ha estado y está presente en toda la física, solamente hay que pararse a
pensar el número de fórmulas físicas donde aparece el tiempo. El concepto del tiempo
sufre un cambio drástico de mentalidad con el concepto relativista que surge en
comienzos del siglo anterior con Einstein.
En los sistemas computacionales, tradicionalemte se ha considerado que un
sistema computacional funcionaba correctamente cuando obtenía solución correcta
desde el punto de vista lógico, independiente del tiempo de procesado. Esta definición
no será válido par los sistemas que interactúan fuertemente con el entorno, son los
denominados Sistemas de procesamiento en Tiempo Real (STR). Este tipos de sistemas,
generalmente dedicados a tareas de control, suelen estar formados por recursos tales
como sensores, para detectar el estado del sistema, unidad o unidades de cómputo, para
procesar la entrada y generar la salida y los actuadores que ejecuta la información
generada por el procesador. La cooperación y coordinación entre los diversos recursos
obliga a que además de obtener una operación correcta, esta se realice con una
temporalidad determinada.
Software de Tiempo-Real
sensores
Entorno
externo
Reloj
tarea
Actuadores
tarea
Sistema
operativo
tarea
Figura 1.1 Sistemas de tiempo Real
El ejemplo clásico de STR es el sistema electrónico de los automóviles, que
deben controlar la velocidad del coche, control de la tracción del coche, del ABS, etc.
Según que requerimientos no sólo deseamos que se realice una determinada tarea, por
ejemplo que active el ABS, sino que esto se realice en un tiempo mínimo. Desde luego,
es deseable que todos los procesos se ejecuten en el menor tiempo, pero las limitaciones
del entorno y del sistema de procesado impiden que así sea. Tendremos que priorizar
unas tareas sobre otras, estableciendo un tiempo máximo de respuesta de cada una de
las tareas, y acorde esta información establecer un plan de ejecución. Así desde el punto
1
de vista de requerimientos temporales impuestos podemos distinguir entre tres
diferentes categorías:
 Sistemas de tiempo real estricto: el incumplimiento de alguno de sus
requerimientos puede tener efectos catastróficos sobre el sistema que
controla, por lo que imprescindible evitar estas situaciones,
(ABS,Airbag)
 Sistemas de tiempo real no estricto: el sistema puede incumplir
ocasionalmente alguno de los requerimientos impuestos, tal que este
incumplimiento produce una disminución en la calidad o prestaciones de
la respuesta, pero se puede considerar aun así correcto el funcionamiento
si no cumple alguno de los requisitos (monitorización de la velocidad, de
la gasolina,etc).
 Sistemas sin requerimientos de tiempo real: no importas el tiempo que se
tarda en obtenerse una respuesta, si bien es deseable que se realice en el
menor tiempo posible.
Además de su requerimiento temporal es importante saber como es el patron de
llegadas o requerimientos de los eventos producidos en el sistema. Podemos distinguir
según este patrón entre tres tipos de tareas:
 Tareas periódicas: los eventos se generan a intervalos temporales
regulares. La duración de este intervalo se conoce como periodo de
activación, T, y es suficiente para caracterizar la llegada de eventos.
 Tareas esporádicas: los eventos se generan a intervalos temporales no
regulares, pero conocemos un tiempo mínimo entre llegada de dos
eventos consecutivos. A este tiempo lo identificaremos de igual forma
con el periodo de la tarea, T (en las situaciones de peor caso, coincidirá
con la periódica de periodo T).
 Limitado: los eventos se ejecutan a intervalos irregulares, pero se tiene
garantizada una densidad máxima entre llegadas, expresada como un
número máximo de eventos nmax en un intervalo de tiempo T.
 Ilimitado: los eventos se generan a intervalos no regulares de tiempo,
pero no existe un tiempo mínimo entre llegadas ni densidad máxima de
ocurrencia. Virtualmente podría ocurrir la llegada de infinitos
requerimientos de forma simultanea, por lo que no se puede garantizar un
tiempo de respuesta limitado. Evidentemente ningún sistema es capaz de
seguir instantáneamente un número infinito de eventos, así que realmente
se trataría de un patrón limitado de llegadas, aunque con un límite
efectivamente muy grande.
1.2 Técnicas de modelado de sistemas
Para verificar el cumplimiento de los requerimientos temporales de las distintas tareas,
tendremos que diseñar la ejecución de los eventos, y estudiar matemáticamente los
resultados que se obtienen. Las técnicas utilizadas comúnmente son:
 Técnicas off-line: antes de que el sistema de tiempo real esté operando se
prevé y analizan los posibles comportamientos, de manera que se pueda
verificar el cumplimiento de los plazos de respuesta a partir de cotas
2
superiores de los tiempos de respuesta o, en caso de incumplir alguno,
cuantificar el grado de incumplimiento.

Técnicas on-line: en el instante en que una nueva tarea está lista para
ejecutar, se realiza el análisis de planificabilidad considerando la nueva
tarea junto con el conjunto de tareas ya existentes. Si el nuevo sistema
formado siguiera siendo planificable se acepta, en caso contrario se
rechaza. Estas técnicas presentan el inconveniente de que se puede
rechazar tareas de gran importancia.
Las técnicas que se van a desarrollar en la tesina son del primer tipo de técnicas,
mediante la cual se garantiza a priori plazos en la respuesta del sistema. Para poder
realizar estas técnicas es necesario conocer los requisitos de las tareas, así como sus
características. De forma que es necesario que todos los componentes del sistema, tanto
software como hardware deben de ser conocidos a priori.
1.3. Sistemas monoprocesadores y multiprocesadores.
sensores
Procesador 2
Redes de
comunicación
Procesador 1
A la hora de planificar el sistema de tiempo real podemos distinguir, según los
recurso de procesado de la información en sistemas monoprocesadores, un único
procesador, y multiprocesadores , dos o más procesadores.
Cuando la planificación se realiza en un entorno multiprocesador tenemos mayor
potencia de resolución, pero tenemos que considerar los mecanismos mediante los
cuales se coordinan la ejecución de las diferentes tareas relacionadas en diferentes
procesadores. Por lo general este mecanismo se realice mediante el paso de mensajes,
de manera que cuando una tarea termina envía un mensaje que activa a la tarea
siguiente.
Los sistemas multiprocesadores y distribuidos de tiempo real tiene una
importancia creciente en los sistemas de control de hoy en día, sobre todo, debido a que
el bajo coste de las redes de comunicación permite la intercomunicación de múltiples
dispositivos y de sus controladores en un gran sistema.
Por lo general un sistema distribuido esta compuesto por múltiples procesadores
conectados entre sí por recursos de comunicación. Es preciso que dichos sistemas de
comunicación sean, al igual que todo el sistema, de tiempo real, es decir que realice la
comunicación en un tiempo máximo acotado, y conocido a priori. De esta forma en la
planificación del sistema, han de considerarse las tareas de comunicación como otras
más del sistema de tiempo real.
actuadores
Entorno Externo
3
Figura 1.2 Sistema Multiproceasador
Ejemplo de sistema multiprocesador con 2
procesadores
La mayoría de las
redes de comunicación no se adaptan bien a las
requerimientos de tiempo real, no soportando una planificación de los mensajes
soportados bajo prioridades. Redes de comunicación de tiempo real son el token-bus
[STR88], el bus CAN [TIN94E], FDI [AGR91], etc.
Los mensajes de comunicación de estas redes se modelan como tareas con
distintas prioridades que se ejecutan en la red de comunicación, de manera que tenemos
que planificar también las “tareas” de la red de comunicación. Cada mensaje tendrá
asociada, por tanto una longitud máxima de envió identificada como lm.
El proceso de comunicación entre tareas en diferentes procesadores se realiza en
las siguientes etapas:
 Generación y encolado del mensaje: la tarea que envíe el mensaje debe
componer el mensaje a trasmitir, y en el caso necesario, segmentarlo en
paquetes de tamaño fijo. Además cada paquete transmitido por la red
necesitará información adicional para el encadenamiento del mensaje hasta
el destino, par finalmente ser puesto en la cola de transmisión.
 Acceso al dispositivo de comunicación. Una vez que el paquete es encolado,
deberá esperar a que el dispositivo de comunicación quede libre y listo para
la transmisión del paquete.
 Transmisión del mensaje por enlace físico desde el procesador de la tarea
emisora origen hasta el procesador donde se encuentra la tarea receptora. El
tiempo de transmisión vendrá definido por la longitud y por la velocidad de
la red comunicaciones.
 Recepción y composición del mensaje. Una vez recibido todos los paquetes
correspondientes deberá componerse el mensaje original y notificarse a la
tarea de destino.
En la mayoría de los sistemas se suelen considerar los tiempos de generación y
de encolado del mensaje como parte de ejecución de la tarea emisora, así como la
recepción y composición del mensaje a la tarea receptora. Estos tiempos han de sumarse
a los tiempos de ejecución de peor caso propias de las tareas. Otros sistemas, sin
embargo parte de las operaciones de generación y encolado las ejecuta alguna otra tarea,
de prioridad generalmente superior, de forma que es necesario considerar esta tarea
adicional en el análisis.
La similitud en una red de comunicación apta para tiempo real del acceso y la
transmisión del mensaje con el tiempo de ejecución de una tarea de un procesador, hace
4
que desde un punto de vista analítico, no distingamos entre la ejecución de una tarea en
un procesador y la transmisión de un mensaje por un dispositivo de comunicación. De
esta forma identificaremos cada mensaje por su tiempo de transmisión de peor caso Cm,
siendo calculado suponiendo que tuviera el uso exclusivo del sistema de transmisión.
Es por esto que nos referiremos a las tareas que se ejecutan en un procesador o a los
mensajes transmitidos por una red de comunicación como “acciones” del sistema del
tiempo real. Así el modelo de sistemas distribuidos de paso con mensajes consistirá
desde un punto de vista analítico como una secuencia de acciones (tareas en los
procesadores y mensajes en las redes de comunicación) conectados entre sí mediante
eventos internos, y con tiempo de computo o transmisión de peor caso Ci, siendo i la
tarea.
1.4 Características de las acciones
Como hemos visto en el anterior apartado, consideraremos a partir de ahora
“acciones” entendiendo estas como tareas en los procesadores o mensajes en las redes
de comunicación. En las técnicas de análisis off-line, debemos conocer los parámetros
propios de las acciones, de manera que seamos capaces mediante algoritmos
matemáticos (planificación del sistema de tiempo real). Identificaremos cada acción con
el subíndice i. Cada acción ai queda definida, en un principio por los parámetros
siguientes:

Ci: tiempo de ejecución de peor caso de la tarea ai en un procesador sin otras
tareas o el tiempo de transmisión de peor caso si es un mensaje en una red de
comunicación.

Ti: periodo de activación (o tiempo mínimo entre llegadas) del evento externo
que origina la cadena de respuesta a la cual pertenece la acción.

Ji: retraso máximo en la activación de la acción.

Di: deadline, es el tiempo máximo que ha de transcurrir entre la llegada del
evento externo (no la activación que puede ocurrir hasta Ji instantes después)
hasta la finalización de la ejecución. A veces también es necesario cumplir unos
requisitos temporales en cada tarea particular que se ejecute en un tiempo
máximo di. Cuando cada evento externo tiene un única tarea asociada D y d
coinciden.
Conociendo estas características de las tareas, tendremos que ser capaces de hacer
que el sistema cumpla todos los requisitos temporales, finalizando cada proceso antes de
sus deadline. Para esto tendremos que buscar técnicas de planificación apropiadas, y
encontrar los algoritmos matemáticos que nos calculen los tiempos de respuesta de peor
caso comprobando que es inferior al deadline. Otras técnicas de análisis no nos calculan
el tiempo de ejecución de peor caso, pero nos aseguran que si cumple una series de
requisitos dicho sistema es planificables, es decir, cumple los requisitos temporales.
5
Nota: por comodidad denotaremos las acciones como tareas, aun siendo mensajes.
También denotaremos Ci como el tiempo de ejecución de peor caso, incluso cuando sea
tiempo de envío.
1.5 Modelo general para transacciones de tiempo real.
En sistemas distribuidos de tiempo real, el modelo mas utilizado es modelo
transacional [Tin94B]. Una transacción es una entidad que agrupa tareas activadas todas
con igual periodo y con ciertas restricciones en cuanto a sus instantes de activación.
Identificaremos cada transacción como i , ésta es activada por un evento
externo con periodicidad Ti, y que se compone de un conjunto de mi tareas o mensajes.
La llegada de un evento activa la secuencia de tareas de la misma transacción. Cada
tarea de la transacción i se denotará como ij, donde el subíndice j denota la posición
en la secuencia de la transacción. Cada tarea se puede activar a partir de un tiempo
relativo a la llegada del evento de la transacción (offset, ij). La activación se puede
producir desde este momento hasta Jij instantes posteriores, de forma que se produce en
el intervalo temporal [t0+ij, t0+ij+Jij], donde t0 es el instante de llegada del evento
externo. Para cada tarea identificaremos su tiempo de ejecución de peor caso como Cij.
Dependiendo de cómo sea la fase de activación de la tarea distinguimos entre
dos tipos de transacciones:
 Con offset estáticos, cuando la fase de activación es fija, y conocida a priori.
 Con offset dinámicos, cuando la fase de activación depende de los tiempos
de respuesta de las tareas anteriores. Este modelo permite modelar y analizar
sistemas de tiempo real con relaciones de procedencia, tales como las
gobernadas por el paso de mensajes.
En los sistemas multiprocesadores y distribuidos es usual que el sistema pueda
ser modelado por transacciones compuestas por varias tareas, al estilo del modelo
computacional descrito anteriormente. En sistemas que siga la arquitectura clienteservidor una tarea cliente se activa por la llegada de un evento externo y requiere el
servicio de uno o varios procesadores. Estas tareas cliente pueden modelarse mediante
una transacción . En este modelo cada tarea ij se activa con la finalización de la tarea
previa perteneciente a la misma transacción(ij-1).
El tiempo de respuesta de la tarea ij será el tiempo transcurrido desde la llegada
del evento externo hasta la finalización de su ejecución y se denota Rij.
De esta forma, cada acción de una transacción representa una tarea ejecutando
en un procesador o un mensaje trasmitido por el canal de comunicación, que se activan
cuando se completan la ejecución de la tarea anterior. Como veremos, la fase ij será el
tiempo de mejor caso de la tarea anterior, y el retraso será la diferencia entre la peor y
mejor respuesta de la anterior tarea.
6
Figura 1.3. Transacción de Tiempo Real
7
2. PLANIFICACIÓN DE SISTEMAS DE TIEMPO REAL
2.1 Características fundamentales.
Como comentábamos en el apartado 1.2 las técnicas que desarrollaremos en esta
tesina serán del tipo off-line. Para poder conocer con exactitud el comportamiento
temporal de las tareas de un sistema en tiempo real es necesario eliminar el
indeterminismo que produce la ejecución concurrente. Ello es posible por medio de la
planificación.
La planificación del sistema de tiempo real consiste en:
 Definición de las reglas de uso de cada uno de los recurso disponibles,
procesadores y recursos compartidos. Es lo que llamaremos algoritmo o
política de planificación.
 Un método para predecir el comportamiento del sistema en el peor caso
cuando se le aplica el algoritmo de planificación. Ello permitirá cumple
o no las restricciones temporales que se le imponen. Esto es lo que se
llama análisis de planificabilidad.
En esta tesina sólo estudiaremos los tiempos de respuesta de peor caso, por muy
poco probables que sea éste. Existen también estudios estadísticos, que se centran en los
tiempos de respuesta en función de la probabilidad de que ocurran los sucesos
correspondientes.
Las técnicas de análisis de planificabilidad, muchas veces no son técnicas
exactas, y lo que obtenemos son cotas superiores de los tiempos de respuestas, se dicen
que estas técnicas son pesimistas, de forma que se pueden encontrar sistemas que desde
el punto de vista del análisis no son planificables, pero si lo son realmente. Cada vez se
buscan técnicas menos pesimistas, que se acerque al algoritmo de planificabilidad que
nos da el tiempo de respuesta exacto, o con las cuales obtengamos el valor exacto de los
tiempos de respuesta.
Los test de planificabilidad que obtienen el resultado exacto o bien cotas
superiores se llaman test de planificabilidad suficientes. En el caso de que el test sea
exacto, además de suficiente se denomina test de planificabilidad exacto. Desde el punto
de vista del estudio de los tiempos de peor caso, que es el que trataremos, necesitamos
obtener test suficientes. Para sistemas monoprocesadores hay múltiples test de
planificabilidad exactos, sin embargo la complicación de los sistemas distribuidos sólo
existen test exactos en ciertos casos sencillos, resultando inabordables en la mayoría.
Las políticas de planificación
deben cumplir además las siguientes
características:
 Ser predecible, con objeto de asegurar tiempos de ejecución finitos. Para ello
deben ser predecibles las propias interferencias que el algoritmo tendrá sobre
el calculo del tiempo de respuesta del sistema. Estos efectos deben ser
mensurables.
 Capaz de gestionar diferentes recursos compartidos. Diferentes recursos
pueden requerir diferentes políticas de planificación, incluso formando parte
del mismo sistema de tiempo real.
 Debe de ser capaz de garantizar el tratamiento tanto de eventos periódicos
como aperiódicos, incluso con patrones de llegada ilimitados.
8


Verificar su planificabilidad para utilizaciones altas.
Que sea sencillo de implementar en aplicaciones reales.
2.2 Clasificación de las políticas de planificación sistemas monoprocesadores
En la clasificación vamos a ver las políticas de planificación, suponiendo
además de ser monoprocesadores las siguientes propiedades:
 Las tareas son independientes, es decir los tiempos de respuesta no dependen
de los tiempos de respuesta de las otras tareas.
 No existen compartición de recursos de las distintas tareas.
 Todas las tareas son periódicas.
 Los tiempos de cambio de contexto(tiempo que se emplea entre el paso de la
ejecución de una tarea a otra) son despreciables, o están incluidos en los
tiempos de ejecución de peor caso de las tareas.
Estas imposiciones se irán eliminando añadiendo variantes a las diferentes
políticas de planificación, de forma que puedan soportar tareas que no cumplan los
requisitos expuestos anteriormente.
Conforme a lo expuesto anteriormente las políticas de planificación se pueden
clasificar como:
1. Ejecutivo cíclico o planificación estática.
2. Por prioridades:
a. Estáticas
i. Rate monotonic (RMA)
ii. Deadline monotonic (DMA)
b. Dinámicas
i. Prioridad al más urgente. Earliest Deadline first (EDF).
ii. Prioridad al menos holgado. Least Laxity First (LLF)
Políticas de Tiempo-real
Cíclico
Prioridades
Estáticas
Rate monotonic
Deadline Monotonic
Dinámicas
EDF
LLF
9
2.2.1 Planificación estática o cíclica
Es el mecanismos de planificación más sencilla es la planificación estática o
ejecutivo cíclico. Es válida únicamente para tareas periódicas. La planificación se
realiza antes de la ejecución, una vez conocido el sistema. Se organiza la ejecución de
las tareas en un hiperperiodo, que es el mínimo común múltiplo de los periodos de las
tareas. Se construye una tabla con la secuencia de llamadas(activación de tareas) a
realizar en el hiperperiodo. Puesto que a patir del primer hiperperiodo se repite el
comportamiento del sistema, la tabla sólo necesita almacenar las acciones de un
hiperperiodo.
Según como sean las tareas a realizar, se pueden fraccionar en rodajas o deben
ejecutarse completas. A la hora de realizar la tabla de ejecución, es deseable que las
tareas puedan ser fraccionadas, si bien muchas veces este proceso necesita un tiempo
adicional al de ejecución. Si se puede construir el plan, entonces el sistema es correcto.
El funcionamiento del planificador, una vez realizada la planificación es muy
sencilla, ya que sólo debe ir leyendo las entradas correspondientes en el plan de
ejecución.
El ejecutivo cíclico tiene s inconvenientes muy grandes, que le hace que sólo sea
usado para planificaciones muy sencillas, estos problemas son:



Es difícil de construir el plan, sobre todo si los periodos generan un
hiperperiodo muy grande, lo que generaría una tabla de activación de gran
tamaño, prácticamente intratable. Esto puede resolverse reduciendo
convenientemente los periodos de las tareas(nunca ampliando, pues debemos
de ser pesimistas).
Es muy difícil de mantener, pequeñas modificaciones del sistema pueden
hacer que tengamos que rehacer de nuevo el plan de ejecución. No siguiendo
el principio de independencia entre la estructura lógica del programa y su
planificación.
Es muy poco flexible, no pudiendo tratarse en esta planificador eventos
asíncronos, o con retraso.
Ejemplo:
Actividades a controlar
Medida velocidad
Control de Inyección
Control frenos ABS
Tiempo ejecución(C)
4ms
40ms
10ms
Periodo(T)
20ms
80ms
40ms
Plazo de finalización(D)
5ms
80ms
40ms
H=hipermeriodo=mcm(20,80,40)=80ms
En un hiperperiodo hay 4 ejecuciones de la medida de la velocidad, 2 del control
de frenos y una del control de inyección. El tiempo de ejecución del sistema es de
44ms+40ms+102ms=76ms. Será planificable siempre que pueda ser las tareas
seccionables, en especial el control de inyección, ya que si este no es seccionable
perderían el plazo las otras dos tareas, ya que su ejecución es mayor o igual que los
plazos de finalización.
10
Una posibles solución cíclica de este sistema podría ser la siguiente:
0
76
Veloc
Fuel-4
64
Veloc
4
ABS
Otras tareas sin requisitos temporales
14
Fuel-1
60
20
Fuel-3
Veloc
54
ABS
Fuel-2
Veloc
44
24
40
Pseudocódigo de ejecución del sistema de control:
Begin
loop
Veloc; ABS; Fuel_1;Veloc;Fuel_2;Veloc;ABS;Fuel_3;Veloc;Fuel_4;
Sleep(4ms);
end loop;
end;
2.2.2 Planificación mediante prioridades.
Un planificador basado en prioridades decide que tarea es la que se ejecuta de la
q ue estén pendientes de ejecución en virtud de un único atributo de la tarea: su
prioridad. Las tareas planificadas pueden encontrarse en tres posibles estados:
 Preparada: El evento de la activación de la tarea ha ocurrido, y la tarea está
lista para poder ser ejecutada pero el procesador se encuentra ejecutando otra
de mayor prioridad.
 Suspendida: Una tarea se suspende cuando termina su ejecución y se
encuentra a la espera de la llegada de la siguiente activación.
 Ejecutando: La tarea es la más prioritaria de las tareas preparadas y esta
siendo atendida por el procesador.
Cuando las tareas se comunican entre si, entonces aparecen estados adicionales
que reflejan la situación de una tarea que está esperando a sincronizarse con otra.
Un planificador basado en prioridades puede entenderse como una cola de
tareas, ordenadas por prioridad, de la que se extrae el primer elemento de la cola(con
mayor prioridad). Los procesos realizados por el procesador son las siguientes:
 Despacho. Una tarea i lista para ejecutar será despachada cuando no haya
otra tarea en ejecución de mayor o igual prioridad que ella
 Suspensión. Cada vez que una tarea termina de ejcutar, se suspende hasta la
siguiente activación
11
 Activación. Cuando es una tarea periódica se produce de forma periódica,
para las esporádicas cuando se produce un proceso interno o externo que
debe atender.
 Expulsión. Una tarea i es expulsada del procesador, cuando esta ejecutando
y se produce una activación de una tarea con mayor prioridad, pasando a
estar en estado preparada en al cola de prioridad.
Figura 2.1 Modelo de planificador expulsivo por prioridades
2.2.3 Planificación dinámica mediante prioridades fijas.
Una posibilidad bastante más potente y versátil a la planificación estática es la
planificación dinámica. En ella los problemas de contención de recursos se resuelven en
el instante que aparecen, por lo que no es necesario realizar un plan ejecutivo previo.
Esto hace más complejo el funcionamiento del planificador, aunque el sistema resulta
mas sostenible y general, además de ser independiente de la estructura del código, al no
tener que hacer partición del mismo.
La elección de la ejecución de una otra tarea a la hora de ejecutar en el
procesador o en algún otro recurso compartido se realiza según la prioridad de las
tareas, prioridad que se conocen a priori (prioridades fijas). De esta forma la tarea con
mayor prioridad de las que desean ejecutar en un recurso es la que toma dicho recurso.
Dentro de las políticas de planificación de prioridades hay que diferenciar entre
un planificador expulsor o un planificador no expulsor. En un planificador no expulsor,
cuando una tarea toma el control del procesador no detiene su ejecución hasta que ha
finalizado el proceso. Por el contrario en un planificador expulsor una tarea cede el uso
del procesador (es expulsada) si se activa una tarea de mayor prioridad, aunque desde el
punto de vista del análisis de peor caso consideraremos que es expulsable también por
tareas de igual prioridad)
Según la asignación de prioridades a las diferentes tareas tendremos distintos
planificadores. Las más importantes son la Rate Monotonic (RM) y la deadline
Monotonic (DM).
12
Teoría RMA (Rate Monotonic Análisis)
La teoría RMA (Rate Monotonic Análisis) es una técnica de análisis de sistemas
con prioridades fijas, cuyo objetivo es determinar que el sistema sea planificable. Esta
teoría surge a partir de un trabajo llevado a cabo por Liu y Layland en 1973 [Liu73] en
el que introdujeron el algoritmo RMS (Rate Monotonic Scheduling). Demostrando que
la asignación era óptima cuando se le daba mayor prioridad a las tareas con menor
periodo. El trabajo de Liu y Layland era demasiado restrictivo, siendo aplicable a pocos
sistemas, pero sentaría las bases de trabajos posteriores donde se eliminan las
restricciones impuestas.
Cuando los plazos de finalización son iguales al periodo esta asignación es
óptima. De esta forma si un sistema con asignación estática de prioridades y con
deadline igual al periodo no es planificable con asignación RM no es planificable con
cualquier otra asignación estática.
Teoría DMA (Deadline Monotonic Análisis)
La teoría DMA (Deadline Monotonic Análisis) es una técnica de análisis de
sistemas con prioridades fijas, que asigna prioridades según el deadline. Así la mayor
prioridad corresponde a la tarea que tenga menor plazo de ejecución. Leung y
Whithehead probaron que, en el caso en el que el deadline sea menor que el periodo la
asignación óptima es la basada en esta teoría [LEU82].
En el apartado 2 de esta tesina veremos los diferentes test de planificabilidad,
tanto para los análisis RMA como DMA.
Asignación de prioridades
Hemos considerado hasta ahora la asignación óptima de prioridades fijas para
tareas que cumplan:
- Periodo igual al deadline RMA
- Deadline menor al periodoDMA
Todavía no hemos contemplado una posibilidad, que el deadline sea mayor
periodo. Para asignar prioridades en este caso Ausdley desarrolló un algoritmo
heurístico [AUS91B]. Este algoritmo nos proporciona si el sistema es planificable una
asignación de prioridades con el cual lo sea, si bien puede ocurrir que existan otras
asignaciones mejores. En el caso de que el sistema no sea planificable el algoritmo nos
lo muestra.
Este test se basa en que si una tarea i cumple su plazo con la prioridad más baja
del sistema, y existe un orden de prioridades admisible para todo el sistema, entonces
hay un orden de prioridades que garantiza el sistema es planificable donde i tiene
prioridad menor.
13
Algoritmo de asignación de prioridades:
Procedure asignación_prioridades(System: in out Task_set; N:in Natural; planificable:out booleam) is
Begin
for k in 1..N loop
for next in k in 1..N loop
Cambia(system,k,next)
Test(Sistem, k, planifiacble);
exit when planificable;
end loop
exit when not planificable
end loop
end asignacion_prioridades;
Explicación del algoritmo:
Las tareas se ordenan según la prioridad, así la 1 es la de menor prioridad, y N
es la que más.
Partimos de una asignación arbitraria del sistema (System), el cual damos al
programa. Comprobamos si existe alguna asignación con 1 con menor prioridad, de
forma que el sistema sea planificable ( el Test de true), si es así el algoritmo nos
devuelve dicha asignación. Si no es planificable comprobamos con 2, así
sucesivamente hasta N. El programa nos devuelve el primero que sea planificable,
independientemente de si es optimo o no. En el caso de que no sea planificable de con
ninguna asignación el programa nos devuelve el valor de planificable como false.
Ejemplo: System 1, 2,3 (1la menos prioritaria, y 3 la más prioritaria) y la
unica ordenación posible para que el sistema sea planificable es 3, 2,1 (3 la menos
prioritaria, y 1 la más prioritaria).
 K=1 1. System=(1, 2,3)
 Next=1, no cambia nada system= (1, 2,3), Test( system,1)false
 Next=2,cambia 1 y 2 system= (2, 1,3), Test( system,2)false
 Next=3,cambia 2 y 3 system= (3, 1,2), Test( system,3)True

K=21. System= (3, 1,2)
 Next=2, no cambia nada system= (3, 1,2), Test( system,1)false
 Next=3 ,cambia 1 y 2 system= (3, 2,1), Test( system,2)True

K=31. System= (3, 2,1)
 Next=3, no cambia nada system= (3, 2,1), Test( system,1)True
El programa nos devuelve el sistema ordenado según sus prioridades (3, 2,1) y
planificable=true
14
2.2.4 Planificación dinámica mediante prioridades dinámicas.
Estas políticas de planifiación, al igual que las anteriores se refieren a la
asignación de prioridades paa la utilización de los recursos compartidos, en especial el
procesador.
Los planificadores con prioridades dinámicas son más complicados de
implementar y de analizar de forma teórica los tiempos de respuesta de peor caso, que
los de prioridades estáticas. La utilización de estos y no los de prioridades fijas es
debido a que consiguen que sistemas no planificables mediante prioridades fijas, si lo
sean bajo prioridades dinámicas, consiguiendo utulizaciones más amplias del
procesador.
Los planificadores dinámicos se encentran en auge, y se empiezan a desarrollar
sus bases teóricas desde hace poco tiempo. Si bien estas teorías tienen que superar
algunos de los principales problemas que hace que su utilización sea menor al de
prioridades fijas. Las principales causas son [RIP96]:



No son estables bajo sobrecargas. De forma que si alguna tarea consume
más tiempo del estimado, no hay forma de saber cual es la tarea que
perderá su plazo.
La mayoría de sistemas operativos en la actualidad no disponen de
planificadores basados en prioridades dinámicas..
Dificultad de implementación de sistemas con prioridades dinámicas
frente a la implementación estática.
El principal algoritmo de planificación dinámica es el EDF (Earliest Deadline
First) [LIU73]. También tiene importancia otro algoritmo el LLF(Least Laxity First)
[AUD90].
Teoría EDF (Earliest Deadline First)
La teoría EDF es una técnica de análisis de sistemas con prioridades dinámicas,
que asigna prioridades según la tarea activa con el plazo de ejecución (deadline) más
próximo en un tiempo t. Así la tarea más prioritaria en un tiempo t dado, será aquella
tarea activa cuyo deadline este más próximo al instante actual. Según el instante de
tiempo en que nos encintremos variará la prioridad, al contrario que RMA y DMA de
aquí que sea de prioridad dinámica.
En sistemas monoprocesadores en donde las tareas sean expulsables y periódicas
con deadline igual al periodo (D=T) se ha comprobado [AUD90] y [RIP96] que es un
algoritmo óptimo.
Veamos un ejemplo que no es planificable RMA y si lo es EDF:
15
RMA
EDF
Fuera de plazo
Teoría LLF (Least Laxity First)
La teoría LLF( primero el más holgado) es otra teoría de prioridades dinámica.
En este caso la asignación de prioridad en un tiempo de t, se elige conforme aquella que
tenga menor holgura, y no la aquella que tenga más temprano su deadline. De esta
forma en un tiempo t la tarea activa que ejecute será aquella cuya holgura sea menor.
Donde definimos como holgura a la diferencia entre el tiempo hasta el deadline, menos
el tiempo de ejecución restante: L(t)=(D-t)-C(t).
Esta teoría es más difícil aun de implementar que EDF y se dispone de menos
fundamentación teórica. En la tesina sólo estudiaremos EDF para prioridades dinámicas.
2.3 Iteración entre tareas e inversión de prioridades
Hemos hablado en este apartado de las políticas de planificación para el uso de
los recursos, haciendo hincapié en el procesador. Aunque es el más importante, no tiene
porque ser el único recurso compartido, otro dispositivos muy comunes pueden ser
discos duros, acceso a sensores. Muchas veces ocurre que, aunque pueda elegirse una
planificación basada en prioridades, no son expulsores, es decir una vez que una tarea
los toma no lo dejará hasta que finalice su ejecución.
La situación ocurrida cuando una tarea de mayor prioridad tiene que esperar su
ejecución ha que finalice la suya otra tarea de menor prioridad, se denomina inversión
de prioridad. Generando un incremento en el tiempo de respuesta de esta tarea,
denominado término de bloqueo.
La sección de código que ejecuta haciendo uso del recurso compartido se conoce
como sección crítica. Para garantizar el acceso exclusivo de la tarea que ejecuta la
sección crítica los dispositivos utilizan normalmente semáforos.
Tendremos no solo considerar el bloqueo en los tiempos de respuesta, sino que
establecer mecanismos que nos limiten el bloqueo, pues este puede ser mayor a la
ejecución de la tarea, incluso teóricamente infinito. Un ejemplo clásico de estas
inversión de prioridad no acotadas es el bloqueo mutuo, en que dos tareas están
interbloqueadas esperando ambas que la otra libere un recurso que necesita para seguir
ejecutando.
16
Ejemplo1:
Vemos un ejemplo de bloqueo mayor que el valor de la sección crítica, el cual
debemos evitar o reducir mediante los denominados protocolos de sincronización de
tiempo real.
La tarea 1 necesita el recurso x, que tiene la tarea 4, hasta que este recurso no
sea ejecutado por 4. Pero como 4 es la menos prioritaria, sufre interferencias por 3 y
por 2, que a su vez hace que aumente el bloqueo de la tarea 1. Si no tenemos ningún
protocolo, el bloqueo que en principio debería de ser la ejecución de dx, aumenta con la
ejecución de 1 y 2.
Ejemplo2:
En este ejemplo vamos a ver un bloqueo mutuo, que genera bloqueo infinito:
Tiene bloqueado recurso
“y.” Quiere el “x”
bx, by
ay,axy
b
ay
ay
Tiene bloqueado el recurso”x”.
bx
Quiere el recurso “y”
17
2.3.1 Protocolos de sincronización
Para disminuir el efecto de los bloqueos, y evitar que ocurran bloqueos no
acotados, existen una serie de protocolos que modifican las prioridades de las tareas.
Los más importantes y usados son:
1. Protocolo de no expulsión: no se permiten las expulsiones durante la ejecución
de la ejecución de la sección crítica. Es equivalente a ejecutar las secciones
críticas con la mayor prioridad del sistema. Este protocolo minimiza la duración
de las secciones críticas y evita los bloqueos mutuos. El problema que conlleva
es que interfiere en la ejecución de todas las tareas, incluidas las que no cogen
el recurso, lo que genera bloqueos innecesarios.
Aplicándolo al ejemplo anterior, tendremos que los bloqueos serán:
Bloqueoeo
Donde la tarea 4 cuando toma el recurso x no lo abandona, esto produce que
disminuya el bloqueo de 1, que es la tarea que toma también el recurso. Por el
contrario, las otras dos tareas 2 y 3, que nunca toman el recurso x se ven
bloqueadas al tomar prioridad máxima la sección crítica.
2. Protocolo de prioridad máxima: la sección crítica se ejecuta a la prioridad techo,
que corresponde a la más alta prioridad de las que utilizan dicho recurso. La
ventaja sobre el protocolo de no expulsión es que no bloquea a las tareas con
mayor prioridad que la prioridad techo del recurso. Este protocolo evita
bloqueos mutuos siempre que la tarea no se suspenda durante la ejecución de la
sección crítica. Sigue pudiendo producir bloqueos innecesarios a las tareas con
menor prioridad que el techo que no comparten el recurso.
Aplicándoselo al ejemplo anterior, en este caso, se comporta de igual forma que
el protocolo de no expulsión, al tener techo de prioridad del recurso x prioridad
más alta, dada por la tarea 1.
18
3. Protocolo de herencia básica: en los protocolos anteriores la sección crítica
siempre ejecutaba con una prioridad fija, en este protocolo puede ejecutar a
varias prioridades. La prioridad de la sección crítica es la mayor de las
prioridades de las tareas que bloquean el recurso. Si durante la ejecución de la
sección crítica una tarea de prioridad superior a la sección intenta tomar el
recurso, la prioridad de la sección crítica aumenta automáticamente hasta esta
prioridad superior. Este protocolo elimina totalmente la inversión de prioridad
pero produce bloqueos de peor caso mayores que los protocolos anteriores.
Aplicándolo al ejemplo anterior los bloqueos sufridos son los siguientes:
Cuando la tarea  1 trata de coger el recurso después de ejecutar a la prioridad
de 4 cambia a la de 1, ejecutándose la sección crítica, y bloqueando a las tres
tareas de prioridad superior.
4. Protocolo de techo de prioridad : es equivalente al protocolo de herencia básica
de prioridad más una regla acerca de la petición a la petición de bloqueo sobre
un semáforo libre: una tarea no sólo puede usar un recurso si su prioridad
(definida por la herencia básica) es mayor que el techo de todos los recurso en
uso por otras tareas
Este protocolo previene el bloqueo mutuo siempre y cumple la propiedad de
bloquear como máximo una vez en cada ciclo.
Aplicándolo al ejemplo anterior los bloqueos sufridos son los siguientes:
Cuando 2 trata de ejecutar by, aunque tiene mayor prioridad que 4, el recurso x
que está ejecutando 4 tiene mayor techo de prioridad (prioridad de 1) que 2.
19
2.4 Planificación de eventos no periódicos.
Hasta ahora no hemos considerado en ningún momento como se comporta un
sistema cuando alguna de sus tareas no sigue un patrón de llegadas periódico, tareas
aperiódicas. Dentro de las tareas aperiódicas podemos diferenciar entre aquellas que el
régimen de ocurrencia de eventos está tiene restricciones temporales, o aquellas donde
nada podemos decir de su patrón de activaciones, aperiódicas ilimitadas. Las tareas
aperiódicas son usadas típicamente para servir procesos con requerimientos aleatorios.
En las tareas con restricciones temporales la limitación de los eventos puede
venir dado por dos diferentes patrones:


Esporádicas: aunque los eventos se generan a intervalos no regulares, se
conoce el tiempo mínimo entre dos activaciones consecutivas de la tarea.
Este tiempo mínimo entre llegadas es deseable conocerlo, y se identificará
con la letra T, al igual que el periodo de las tareas periódicas.
Limitado: los eventos se generan a intervalos no regulares pero tienen
garantizada una densidad máxima de ocurrencia. De forma que se puede
asegurar que un tiempo T el número máximo de eventos que pueden ocurrir
son nmax. Desde el punto de vista de análisis de peor caso podemos
considerar este patrón como un conjunto de nmax tareas esporádicas con
tiempo mínimo entre llegadas igual a T.
Las tareas aperiódicas ilimitadas pueden generar de forma hipotética un número
no finito de activaciones en un momento determinado. Realmente esto nunca podrá
ocurrir por las limitaciones físicas del sistema, siendo este tipo de tareas aperiódicas
realmente limitadas. Se considerarán así ilimitadas las tareas en las cuales no sea
posible conocer la limitación de su patrón de activaciones.
Mientras que las tareas aperiódicas ilimitadas no pueden tener requerimientos
temporales (no tienen deadlines), no podemos decir lo mismo de esporádicas y las
limitadas las cuales pueden tener un plazo de ejecución más o menos estricto (tiempo
real duro o blando).
Cuando tenemos un sistema de tiempo real con tareas periódicas y aperiódicas
debemos buscar un política de planificación cuyos objetivos sean los siguientes:



Cumplimiento de los plazos de las tareas periódicas, de forma que las
aperiódicas no interfieran en dichos plazos
Garantizar los tiempos de respuesta de las tareas esporádicas y limitadas con
requerimientos de tiempo real
Obtener los tiempos de respuesta promedio menores de las tareas aperiódicas
y de aquellas sin requerimientos de tiempo real, aumentando la calidad de
respuesta del sistema.
20
Hasta ahora en las políticas de planificación sólo habíamos considerado tareas
periódicas, tendremos que considerar por tanto la posibilidad de la existencia de tareas
aperiódicas.
Desde el punto de vista de análisis de peor caso, si las tarea aperiódicas son
esporádicas con requerimientos de tiempo real, se consideran como tareas periódicas de
periodo T; si tenemos tareas aperiódicas limitadas con parámetros T y nmax, con
requerimientos de tiempo real, se consideran como nmax tareas esporádicas de periodo
T. El problema surge cuando tenemos tareas sin requerimientos de tiempo real y/o
tareas aperiódicas ilimitadas, donde tendremos que considerar una planificación
adecuada para tratar estas tareas, además del método de planificación para las tareas con
requerimientos de tiempo real .
A fin de simplificar la notación llamaremos tareas aperiódicas tanto a las que son
aperiódicas ilimitadas o las tareas que siendo periódicas o no tiene requerimientos de
tiempo real, y serán tratadas de igual forma.
La manera de tratar a las tareas aperiódicas varía según sea la planificación de
las tareas con requerimientos temporales. Tendremos que distinguir entre la
planificación de tareas aperiódicas en sistemas de prioridades fijas y con prioridades
dinámicas. Mientras en los sistemas de prioridades fijas el problema es la asignación de
una prioridad a las tareas aperiódicas, en los de prioridades dinámicas el problema es la
asignación de su deadline. Aun así podemos establecer una clasificación de los métodos
de planificación de tareas aperiódicas independientemente de si el sistema está tratado
mediante prioridades dinámicas o estáticas:

Planificación en segundo plano: las tareas aperiódicas tienen la menor prioridad del
sistema(prioridades fijas) o un deadline infinito(prioridades dinámicas). De esta
forma las tareas periódicas son siempre aceptadas en el sistema y cumplen sus
plazos si así lo hacían sin tareas aperiódicas, ya que éstas se ejecutan sólo si el
procesador está libre de alguna tarea periódica. En este método la ejecución de las
tareas aperiódicas se retrasan de forma incontrolable.

Planificación por interrupciones: los sucesos aperiódicas se tratan inmediatamente
después de la interrupción asociada. Es el método obvio para reducir los tiempos de
respuesta de las tareas aperiódicas pero las tareas críticas pueden perder sus plazos
de ejecución.

Planificación por servidor de consulta (polling): se crea una tarea periódica para
tratar eventos aperiódicos asociando a dicha tarea un periodo y un tiempo de
ejecución. Cuando la tarea de polling se activa comprueba si hay peticiones
pendientes y las atiende, sino hay eventos aperiódicos pendientes el tiempo asignado
se pierde.

Planificación de holgura:la holgura es el tiempo de computo no utilizado por
ninguna tarea periódica (la utilización del procesador por tareas periódicas ha de ser
menor al 100%). Existen varios algoritmos para detectar la holgura existente, y son
desarrollados originalmente para planificación dinámica siendo más complejos de
implementar con prioridades fijas. Para planificar la tarea aperiódica de instante de
21
activación ta y de tiempo de computo ca hay que determinar el instante t más cercano
tal que ca unidades de holgura estén disponibles entre [ta, t].

Planificación con reserva de ancho de banda: Se reserva un tiempo de cómputo
para tratar eventos aperiódicos de forma periódica con parámetros Tsy Cs. Otro
parámetro adicional es el de la prioridad Ps para planificadores estáticos y el
deadline Ds en planificadores dinámicos . El valor de estos parámetros se eligen de
forma que las tareas críticas sigan siendo panificables. Si se presenta un suceso de la
tarea servida por el servidor de ancho de banda se procesa inmediatamente si hay
capacidad disponible hasta que el procesamiento concluya o la capacidad del
servidor se agote. Si la capacidad se agota, se suspende el procesamiento o se realiza
en se realiza en segundo plano hasta que la capacidad se restituya. Existen diversos
planificadores de reserva de ancho de banda que se diferencia en como se restituye
el tiempo consumido. Estos sistemas son predecibles y existen algoritmos que nos
permiten obtener los tiempos de respuesta de peor caso de las tareas periódicas.
Los tres primeros son métodos simples sólo válidos para sistemas acrílicos, y
proporcionan por lo general unos resultados muy pobres. La extracción dinámica de
holgura o planificación de holgura es un algoritmo costoso y no siempre garantiza la
existencia de la holgura suficiente. Por el contrario la reserva de ancho de banda es
predecible y más eficiente que los anteriores.
2.4.1 Planificación con reserva de ancho de banda
Como hemos dicho en el apartado anterior los planificadores de reserva de
ancho de banda son los mejores métodos para modelar los sistemas de tiempo real con
tarea aperiódicas. En este apartado estudiaremos alguno de estos métodos de reserva de
ancho de banda, ya que el tema principal del trabajo en esta tesina será el estudio de
sistemas planificados por prioridades dinámicas (EDF) y con tareas aperiódicas servidas
por planificadores de reserva de ancho de banda.
Diferenciaremos entre la planificación con reserva de ancho de banda en
prioridades fijas y prioridades dinámicas, aunque como veremos la idea es la misma con
la diferencia que en EDF los servidores de ancho de banda tienen que tener otro nuevo
parámetro, el deadline.
A) Planificadores de reserva de ancho e banda en RMA
El estudio de los sistemas planificados con prioridades fijas es bastante anterior
al estudio de dichos sistemas con prioridades dinámicas, de forma que en un principio
los planificadores de eventos aperiódicos fueron realizados para trabajar en RMA,
extendiéndose después a prioridades dinámicas.
Entre los servidores de reserva de ancho de banda más importantes que trabajan
en prioridades fijas destacan :



Servidor diferido (¿¿ref??)
Intercambio de prioridades[LEH87]
Servidor esporádico[SPR89A]
22
A.1.Servidor diferido
El Servidor Diferido es un planificador de tareas aperiódicas con tres
parámetros, TS Cs,y Ps(prioridad) que se calculan de forma que el sistema sea
planificable y se atienda lo más posible a las tareas aperiódicas. Las reglas que definen a
este planificador son las siguientes:





La capacidad del servidor comienza siendo Cs y se restaura al comienzo de
cada activación j·Ts jIN
El tiempo de ejecución se consume sólo cuando el servidor se ejecuta.
No se conserva capacidad sobrante entre activaciones.
Las activaciones de tareas aperiódicas se ejecutan en el procesador si su
prioridad Ps es mayor que alguna de las demás tareas activadas y si además
hay capacidad en el servidor.
En el caso de que no exista capacidad en el servidor las tareas aperiódicas
pueden ejecutarse en segundo plano.
Ejemplo gráfico del servidor diferido:
Tareas
1
2
SD
Prioridad
Media
Baja
Alta
Ti
3.5
6.5
3
Ci
1.5
0.5
1
Activaciones aperiod Tiempo ejecución
T=2.8
1.7
23
A.2 Intercambio de Prioridades
El método de Intercambio de Prioridades es un planificador de tareas aperiódicas
con parámetros Cs,Ts y Ps, cuyas características son las siguientes:





La capacidad se restaura como en el servidor diferido, al comienzo de cada
periodo (instante de relleno).
Al principio de cada periodo del servidor si hay peticiones aperiódicas
pendientes y el servidor es la tarea con mayor prioridad estas tareas se
ejecutan usando la capacidad disponible del servidor.
Si no hay ninguna tarea aperiódica pendiente la capacidad se intercambia por
el tiempo de ejecución de la tarea periódica activa de mayor prioridad y se
cambia las prioridades, de forma que la capacidad se mantiene con menor
prioridad.
Cuando se produce un intercambio de prioridad entre una tarea periódica y el
servidor, la tarea periódica se ejecuta al nivel de prioridad del servidor
mientras el servidor acumula la capacidad al nivel de la prioridad de la tarea
periódica.
Durante el tiempo que el procesador esta libre (ninguna tarea pendiente de
ejecución) se consume la capacidad de la tarea aperiódica almacenada,
empezando por aquella que tenga menor prioridad.
La diferencia con el servidor diferido es que cuando no hay actividad aperiódica
pendiente, donde mientras la tarea periódica avanza su ejecución la capacidad del
servidor no se pierde, sino que se mantiene a un nivel de prioridad inferior. Sino llega
ninguna petición aperiódica para usar esa capacidad acumulada con menor prioridad, el
intercambio de prioridad continua con otra tarea de prioridad inferior hasta que la
capacidad sea empleada por tarea aperiódica o sea degradada hasta nivel de prioridad
inferior (background)
P
media
baja
P alta
24
Explicación: En t=0 no existe petición aperiódica, con lo que se ejecuta 1 y
consume la capacidad del servidor a prioridad máxima, Cs a la vez que aumenta la
capacidad con prioridad media. En t=4 el servidor tiene Cs1=1 con prioridad media,
pero como no hay pendiente ninguna tarea aperiódica se ejecuta 2 y consume está
capacidad la cambia por su prioridad (baja o de background). En t=5 se rellena la
capacidad de Cs y como es la de mayor prioridad y hay tarea aperiódica esta se ejecuta
con y agota la capacidad de Cs, en este momento si llega otra tarea aperiódica solo
puede ejecutar si no hay ninguna otra tarea periódica activa (background)...
A.3. Servidor esporádico
El servidor esporádico es uno de los protocolos de reserva de ancho de banda
más importante y utilizados. El servidor esporádico tiene asociado tres parámetros el
periodo, T, la capacidad de ejecución, C, y su prioridad, P. El algoritmo difiere del
servidor diferido en un pequeña, pero importante idea: la capacidad de ejecución no se
rellena periódicamente, rellenándose sólo si se consume. El método de relleno de la
capacidad del servidor es lo que diferencia de otros métodos, para entenderlo tendremos
que definir los siguientes términos:
- Ps: Nivel de prioridad de la tarea que está ejecutando
- Pi: Nivel de prioridad de la tarea i
- Tarea i en estado activo, cuando PsPi
- Tarea i en estado ocioso, cuando Ps<Pi
- RT instante donde se restaura la capacidad del servidor esporádico.
Reglas que rigen el comportamiento del servidor esporádico:




Cuando ocurre un evento aperiódico, si hay capacidad de ejecución
disponible, la tarea aperiódica ejecuta a la prioridad asignada
consumiendo la correspondiente capacidad de ejecución
Cuando la capacidad de ejecución se agota, la tarea puede continuar
ejecutando a nivel de background
La planificación de relleno de un servidor que ejecuta a nivel Pi sigue las
siguientes reglas:
o Si el servidor tiene capacidad disponible, RT se inicializa cuando
la prioridad Pi pase de Activo a Ocioso(en t) RT=t+Ts. Si se ha
consumido la capacidad del servidor RT.
o La cantidad de relleno es igual al tiempo de ejecución consumido
desde la ultima vez que Pi paso de Activo a Ocioso o la capacidad
disponible se haya consumido.
Cuando se produce el relleno y el servidor esporádico ejecutaba a nivel
de background la prioridad del servidor se eleva a su prioridad normal.
Veamos dos ejemplo aclaratorios del comportamiento del servidor esporádico:
25
Como el servidor esporádico es el único que tiene prioridad máxima, el relleno
se realizará T instantes después de que la tarea aperiódica empieza a ejecutar
(pasa a estado Activo). El relleno será igual a la capacidad consumida desde
que la tarea aperiódica comenzó a ejecutar.
Tanto el servidor esporádico como la tarea 1 tiene prioridad máxima, de forma
que el servidor estará en estado Activo cuando tanto él como 1 tomen el
procesador. Esto hace que el relleno de la primera activación sea 1 segundo
anterior a la activación de la tarea aperiódica.
26
B) Planificadores de reserva de ancho e banda en EDF
La pujanza en los últimos años de los sistemas de control gobernados por
prioridades dinámicas, y en especial en EDF ha hecho que mucho de los planificadores
de ancho de banda ideados en RMA se hayan extendido a EDF. Muchas de estas
extensiones han sido estudiadas en el articulo [SPU96]. Una de los principales temas de
la tesina se centra en estos planificadores de ancho de banda en sistemas EDF.
En este capítulo veremos la extensión de los anteriores algoritmos vistos en
RMA y un nuevo algoritmo el TBS [SPU96]. Otro algoritmo importante es el CBS
(Constant Bandwidh Server) [ABE99] que será el principal tema de estudio en esta
tesina por lo que será tratado en siguientes puntos de la tesina.
B.1) Servidor diferido con EDF.
El Servidor Diferido en EDF se diferencia respecto al mismo en RMA en que la
prioridad no vendrá dada por el parámetro Ps, sino por el deadline Ds del servidor que
coincide con el periodo Ts. Así los tres parámetros en el servidor diferido con EDF son
(Ts,Ds,Cs), donde Ts=Ds.
Conforme a esto las reglas del servidor trabajando con EDF son las que siguen:






La capacidad del servidor comienza siendo Cs y se restaura al comienzo de
cada activación j·Ts jIN
El deadline de cada activación coincide con el siguiente periodo de relleno.
El tiempo de ejecución se consume sólo cuando el servidor se ejecuta.
No se conserva capacidad sobrante entre activaciones.
Las activaciones de tareas aperiódicas se ejecutan en el procesador si su
deadline Ds es anterior al deadline de las demás tareas activas en el
procesador y hay capacidad en el servidor.
En el caso de que no exista capacidad en el servidor las tareas aperiódicas
pueden ejecutarse en segundo plano.
Ejemplo gráfico del Servidor Diferido trabajando en EDF
Tareas
1
2
SD
Di
3.5
6.5
3
Ti
3.5
6.5
3
Ci
1.5
0.5
1
Activaciones aperiod Tiempo ejecución
T=2.8
1.7
27
B.2 Intercambio de Propiedades Dinámico (DPE).
El comportamiento del planificador por intercambio de prioridad dinámico es
semejante al del planificador en RMA, con diferencia que ahora el deadline es el que
decide la prioridad de la tarea. De esta forma los parámetros del DPE son el periodo, Ts,
la capacidad Cs y el deadline Ds, que por lo general coincide con el periodo. Con esta
variante respecto a RMA las reglas que rigen el DPE son las siguientes:





La capacidad se restaura como en el servidor diferido, al comienzo de cada
periodo (instante de relleno).
Al principio de cada periodo del servidor si hay peticiones aperiódicas
pendientes y el servidor es la tarea con menor deadline estas tareas se
ejecutan usando la capacidad disponible del servidor.
Si no hay ninguna tarea aperiódica pendiente la capacidad se intercambia por
el tiempo de ejecución de la tarea periódica activa de mayor prioridad
(menor deadline) y se cambia los deadlines, de forma que la capacidad se
mantiene con un deadline mayor.
Cuando se produce un intercambio de prioridad entre una tarea periódica y el
servidor, la tarea periódica se ejecuta con el deadline del servidor mientras el
servidor acumula la capacidad con deadline de la tarea periódica.
Durante el tiempo que el procesador esta libre (ninguna tarea pendiente de
ejecución) se consume la capacidad de la tarea aperiódica almacenada,
empezando por aquella que tenga menor prioridad (mayor deadline).
28
Veamos un ejemplo ilustrativo de estas propiedades que rigen el comportamiento del
servidor DPE:
6
Peticiones
Aperiódicas
0
2
4
6
8
10
12
14
0
2
4
6
8
10
12
14
0
2
4
6
8
10
12
0
2
4
6
8
10
12
16
18
20
22
24
16
18
20
22
24
14
16
18
20
22
24
14
16
18
20
22
24
Cs
τ1
Servidor
Cs=3
T=D=8
Cs1
C
τ2
0
2
4
6
8
10
12
14
16
18
20
22
T=D
τ1
2
8
τ2
3
12
24
Cs2
0
2
4
6
8
10
12
14
16
18
20
22
24
B.3 El Servidor Dinámico Esprádico (DSS)
El DSS puede considerarse como el servidor esporádico, planificado para usar
en prioridades dinámicas (EDF). De esta forma el mecanismo de restauración de la
capacidad se realiza de forma semejante al del servidor esporádico, con la diferencia
que ahora asignamos un deadline a la tarea aperiódica, con el fin de dotar al sistema de
prioridad dinámica. En las definiciones del DSS estudiadas no se consideran la
posibilidad de que este pierda el deadline, con lo que se ha retocado la definición en
[SPU96] para considerar esta situación. Veamos las reglas que nos definen este
servidor:
El servidor caracterizado por dos parámetros (TDSS,CDSS), el sistema puede
encontrase en tres estados:
a) Estado activo: C>0, tarea aperiódica pendiente de ejecutar. Dos situaciones:
i. Ejecutando antes de su deadline ri≤ t <Di
ii. Ejecutando después de su deadline t≥ Di
b) Estado no activo (idle), cuando C=0 y/o no hay requisito aperiódico.
29
1
Activo.I
Activo II
2
4
3
Pasivo
Situaciones:
1) Activo I Activo II. Esto ocurre en el tiempo T=Di, donde la
capacidad del servidor es mayor que cero, y tenemos requisitos
aperiódicos pendientes
2) Activo IPasivo. Ocurre cuando en t<Di ocurre:
a. Se agota la capacidad CDSS=0
b. Deja de haber requisitos aperiódicos pendientes de ejecución.
3) PasivoActivo I. Ocurre cuando :
a. Hay requisitos aperiódicos pendientes de ejecución anteriores
y la capacidad se hace mayor que cero C>0
b. La capacidad es mayor que cero y llega un nuevo requisito
aperiodico.
c. Las dos caso: Se hace C>0 y llega en el mismo instante
requisito aperiódico
4) Activo IIPasivo. Iden 2) pero t>Di
Ejemplos gráficos
1)
DDSS
CDSS=3
TDSS=7
Tarea periodica
Tarea aperiódica(DSS)
3
2
1
ActivoI
Activo2
30
2 y 3)
DDSS
5
Tarea periodica
Tarea aperiódica(DSS)
3
2
1
CDSS=3
TDSS=7
ActivoI
4)
Pasivo
Aa activoI
DDSS
3
Tarea periodica
Tarea aperiódica(DSS)
3
2
1
CDSS=3
TDSS=7
ActivoI
ActivoII
Pasivo
Reglas del servidor:
1) La capacidad del servidor al tiempo t=0 es de CDSS y su deadline es de t=TDSS
2) La capacidad del servidor disminuye de la misma forma que se ejecuta la tarea
aperiódica cuando el sistema está activo
3) Las tareas aperiódicas sólo pueden ejecutarse si de entre todas las tareas activas
es la de mayor prioridad (menor deadline).
4) Si tA es el instante donde el procesador pasa a estar activo, la capacidad del
servidor se restituye en tA+TDSS, si el servidor está pasivo en este instante. En el
caso de que el servidor esté activo (se convierte en activoII) se rellena después
de este instante cuando el servidor pase a estar pasivo.
5) El deadline de los requerimientos aperiódicos ocurridos entre el instante t A hasta
que el servidor pasa a estar pasivo se sitúa en tA+TDSS.
6) Si llega algún requerimiento aperiódico, estando el sistema en situación
ActivoII, o no finaliza la tarea aperiódica anterior, el deadline del procesador se
sitúa TDSS después del anterior.
31
Veamos gráficamente, esta última situación:
2
3
DDSS
3
2
1
TDSS
CDSS=3
TDSS=7
ActivoI
ActivoII
B.4 Servidor de Ancho de Banda Total (TBS)
El servidor TBS, a diferencia de los anteriores, no es una extensión a prioridades
dinámicas de algún servidor aperiódico RMA. El funcionamiento de este servidor es
totalmente distinta al de los anteriores. Está caracterizado por un único parámetro, la
utilización, Us. Las reglas de este servidor son sencillas y se basan en generar el
deadline de la tarea apereriódica que llega en el tiempo t=rk, que recibe un deadline:


dk=max(rk,dk-1)+ Ck/Us (con Ck tiempo de ejecución tarea aperiodica)
d0=0
Este tipo de planificadores se denominan “libre” (Idle), que se caracterizan por
poder ejecutar un tiempo ilimitado las tareas aperiódicas si el procesador no se
encuentra ocupado (ya que no tiene capacidad Cs), mientras que los demás (“no libres”)
como el DSS que sólo pueden ejecutar como máximo t·(Cs/Ts) en un tiempo t .
Veamos un ejemplo ilustrativo para poder comprender el funcionamiento del
servidor TBS:
C
T=D
τ1
2
8
τ2
3
12
Servidor capacidad Us=0.5
32
6/0.5=12
6
Peticiones
Aperiódicas
0
2
4
6
8
10
12
14
0
2
4
6
8
10
12
14
0
2
4
6
8
10
12
14
16
18
20
22
24
16
18
20
22
24
16
18
20
22
24
τ1
τ2
33
3. Técnicas de análisis de tiempo real existentes.
3.1 Introducción
En el apartado anterior hemos contado de forma genérica los diferentes tipos de
planificaciones de tiempo real, sin desarrollar sus técnicas de análisis. El objetivo de
este apartado será introducir las técnicas de análisis existentes, tanto en RMA como en
EDF ya que en esta técnica se desarrollan nuevas técnicas de análisis para tareas
aperiódicas en ambas teorías.
El objetivo que persiguen estas técnicas es verificar el cumplimiento de los
requisitos temporales de las diferentes tareas. La verificación de si el sistema es
planificable se lleva a cabo a priori. Los test de planificación pueden ser más o menos
pesimistas, según la exactitud de sus soluciones temporales de peor caso del sistema.
Los primeros test no eran exactos siendo bastante pesimistas, de forma que aunque
muchas veces no nos aseguraban que el sistema fuera planificable si lo era. En la
actualidad el pesimismo de los análisis se va perdiendo, y en especial en sistemas
monoprocesadores donde la mayoría del análisis actual es exacto. No ocurre lo mismo
en sistemas distribuidos, donde la complicación del sistema es mayor.
En la sección 3.2 vamos a ver las técnicas de análisis para sistemas en RMA,
desde las primeras basadas en utilidades hasta la técnica exacta. En la sección 3.3 vamos
a ver la técnica exacta de la teoría EDF. Por último en 3.4 vamos a ver en sistemas
distribuidos las técnicas basadas en transacciones, tanto en RMA como en EDF.
3.2. Planificación RMA en sistemas monoprocesadores
Antes de ver las diferentes técnicas de análisis de los sistemas
monoprocesadores planificados bajo RMA definiremos los parámetros con los que
vamos a tratar. Supondremos un conjunto de N tareas periódicas ejecutándose en un
único procesador. Cada tarea i estará especificada mediante su periodo de activación
identificado por Ti, su tiempo de ejecución de peor caso, Ci, su plazo máximo de
ejecución (deadline), Di, su prioridad ,Pi, y por último su retraso máximo de ejecución
(jitter), Ji.
Principalmente en RMA distinguios entre dos tipos de tests, basado en conceptos
diferentes, estos son:


Límite de utilización: es el porcentaje de ocupación del procesador. Cada
tarea periódica i tiene una utilización sobre el procesador dada por la
C
expresión: Ui= i . A partir de la utilización de todas las tareas podremos
Ti
ver si el sistema es planificable, si bien estos métodos no son exactos, sino
pesimistas.
Tiempo de respuesta de peor caso: se centra en el cálculo de los tiempos de
ejecución de peor caso de todas las tareas del sistema, para compara luego
con sus plazos respectivos.
34
Las dos técnicas están basadas en el concepto de instante crítico para una tarea
i., que corresponde al instante donde al producirse la activación de dicha tarea tiene
como tiempo de respuesta el de peor caso, es decir la peor situación para la ejecución de
cada tarea.
En RMA existe un teorema demostrado en [LIU73] que demuestra la posición
del instante crítico para cada tarea.:
Teorema 3-1 (Liu y Layland). El instante crítico de una tarea se produce
cuando esta se activa de forma simultanea a las demás tareas con prioridad igual o
superior a la suya.
El teorema esta definido sin considerar retraso de las tareas. En caso de que
exista jitter, el instante crítico ocurre cuando la tarea se activa después de sufrir el
máximo retaso en el mismo instante en el que se activan las tareas con mayor prioridad,
tras sufrir estas su máximo retraso.
3.2.1 Análisis por utilización
A) Sistemas monoprocesadores sin recursos compartidos y T=D
El primer test de planficabilidad dentro de la teoría RMA fue deducido por Liu y
Layland en el año 1973 [LIU73]. Este test se aplica cuando tenemos n tareas
independientes, sin recursos compartidos y con plazos de finalización iguales a sus
periodos Ti=Di.
Por otro lado los mismos autores demostraron que la asignación de prioridades
óptimas cuando asignamos la prioridad conforme al periodo de activación, de forma
que asignemos a la tarea con menor periodo la prioridad más alta. Si un sistema no es
planificable con esta asignación entonces no es planificable en cualquier otra
asignación, ya que esta es óptima.
Un sistema con estas propiedades y con asignación óptima de prioridades será
planificable si cumple la siguiente relación:
 N1

Ci
U  U i  
 U ( N )  N  2  1
i 1
i 1 Ti


N
N
(3.1)
donde U es la utilización total del procesador, e igual a la suma de las utilizaciones del
conjunto de tareas en el sistema y U(N) es el límite de utilización máximo del
procesador para N tareas.
Según el valor del número de tareas, N, el criterio nos limita la utilización del
procesador entre el 69% y el 83%. Esto nos condiciona que el test nos limita la
planficabilidad de sistemas para utilizaciones relativamente bajas.
35
Debido a que el test no es exacto, sino sólo suficiente existen sistemas que
sobrepasando el límite de utilización marcado por el test son planificables.
Lehoczky, Sha y Ding[LEH89] propusieron 16 años después un test exacto para
el mismo problema. Definen así una utilización máxima de peor caso para cada tarea i
para cada tiempo t. Esta utilización de peor caso para la tarea i en el tiempo t viene
definida como:
t 
C j
j 1  j 
U i (t ) 
t
i
 T
(3.2)
siendo x  la función matemática función techo, definida como el entero mayor o igual
que x.
El sistema será planificable si se verifica :
min U i  1
i  1..N
(3.3)
0t Ti
De esta forma si para cada tarea i si existe un instante t entre t=0 y el periodo Ti
cuya utilización de peor caso sea inferior o igual a la unidad entonces dicho sistema es
planificable. Para comprobar la inecuación no es necesario comprobarlo en todo tiempo
t, sino sólo chequear los instantes en las que se activa una tarea de mayor prioridad a
 t 
ella( menor periodo), ya que es en estos instantes donde varía el término   en la
T j 
ecuación 3.2. Aplicando ésta condición el test se reduce a la expresión:
min U i (t )  1 i  1..N
 tPi


 T j  
 Pi  k  T j : 1  j  i, k  1..  


 Ti  
(3.4)
B) Sistemas monoprocesadores sin recursos compartidos y T>D
Cuando los plazos de finalización son menores que los periodos, los test
anteriores dejan de ser válidos. Además la asignación de prioridades en función de los
periodos, ya no es la óptima. En estos sistemas la asignación óptima es aquella basada
en los plazos de ejecución (deadline monotonic, DM), de forma que corresponda la
mayor prioridad del sistema a aquella tarea con el deadline más pequeño. Esta
asignación de prioridades fue demostrada como óptima en el año 82 por Leung y
Whitehead [LEU82].
El primer test de planficabilidad para estos sistemas fue elaborado por Audsley
[AUS91A]. Este test no era exacto, sino que sólo suficiente y también basado en las
36
utilizaciones. La mayor interferencia que una tarea i puede sufrir ocurre en el instante
crítico, estando ésta limitada por la expresión:
Ii 
 Di 
 C j
jhp ( i )  T j 

(3.5)
en donde:
hp(i) es el conjunto de tareas con mayor o igual prioridad que la tarea i,
exceptuando la propia tarea i
El sistema será planificable si cumple para cada tarea la inecuación :
Ci
I
 i  1 i  1..N
Di Di
(3.6)
Este test no es exacto, ya que supone que las tareas de mayor prioridad hp(i)
pueden interrumpir a la tarea i en cualquier instante dentro de su plazo, sin tener en
cuenta que la ejecución dei puede haber finalizado antes de que la expulsión se hay
producido
El análisis exacto se obtiene por extensión del análisis de Lehocky, Sha y Ding
dado en la expresión (3.4) y aplicado a la planificación deadline monotonic. De esta
forma un sistema será planificable si y sólo si para cada tarea del sistema se cumple:

 t  
t 



 C i     C j 

jhp ( i )  T j 
 Ti 


U i (t ) 
t

 min U i (t )  1 i  1..N
0t  Di
Aunque al igual que en el test en el test original, podemos limitar la desigualdad
en un número limitado de puntos Qi que cumplan:

 D 


Qi  k  T j : j  hp(i), k  1.. i    Di

 T j  


(3.7)
Con lo que el test se reduce a :
min U i (t )  1 i  1..N
tQi
(3.8)
37
C) Sistemas monoprocesadores con cursos compartidos
Consideremos ahora un sistema con tareas que comparten recursos, que
supondremos que la compartición de recursos se lleva a cabo mediante alguna de las
técnicas vistas en el apartado 2.3. Identificaremos el término de bloqueo de la tarea i
debido a las tarea de prioridad inferior como Bi. En el caso de planificadores no
expulsores, podemos hacerlo equivalente a un planificador expulsor con un bloqueo
para cada tarea Bi = max C j donde lp(i) son las tareas con menor prioridad a i.
jlp ( i )
Si conocemos los diferentes bloqueos de las tareas, podemos generalizar el test
de utilización de Liu y Layland. Así un sistema compuesto por N tareas planifiaads con
Rate Monotonic y bloqueo Bi para cada tarea será planificable si verifica [SHA90A]:
i
Cj
j 1
Tj
Ui  

 1 
Bi
 U (i )  i 2 i  1 i  1..N
Ti


(3.9)
La extensión del análisis para sistemas con tareas con plazos iguales o inferiores
al periodo, con bloqueos, y con asignación arbitraria de prioridades es un test más
complicado y no exacto. Así un sistema con N tareas con bloqueo Bi para cada tarea i y
con una asignación arbitraria de prioridades{S} es planificable si cumple para cada
tarea:

jH ( i )
Cj
Tj

Ci
C
B
  k  i  U (n,  i ) i  1..N
Ti kS ( i ) Ti Ti
S (i )  tareas con m ayor prioridad y m enor periodo
H (i )  tareas con m ayor prioridad y m ayor periodo
Siendo:


(3.10)
n 2 i   1  1   i 0.5   i  1
U (n,  i )  
0   i  0.5
i

n  num erode tareas en el conjunto H (i )  1
D
i  i  1
Ti
1/ n
D) Sistemas monoprocesadores con plazos superiores al periodo
Los sistemas con plazos superiores a los periodos, tienen la complicación
añadida de que en la respuesta de una tarea puede interferir alguna activación anterior
de ella misma..
Otro problema añadido al cálculo de los tiempos de respuesta es el de asignación
de prioridades, ya que ninguna de las asignaciones vistas anteriormente en función del
periodo o del deadline es óptima. Esta asignación debe realizarse mediante el algoritmo
heurístico visto en el apartado 2.2.3[AUD91B] .
38
La asignación del instante crítico sigue siendo válida, pero mientras que antes se
extendía a comprobar una única activación, ahora debe extenderse el análisis sobre
todas las activaciones que ocurran dentro de lo que se llamará periodo de ocupación de
peor caso[LEH90]. El periodo de ocupación para una tarea i es un intervalo de tiempo
durante el cual el procesador se encuentra ocupado en la ejecución de tareas e mayor o
igual prioridad que i .
El test utilizado es generalización del método utilizado anteriormente para
plazos menores o iguales al periodo. Definamos Wi(m,t) como el máximo tiempo de
ejecución requerido por las tareas de mayor o igual prioridad que i junto con m
activaciones de ella misma en un intervalo de duración t desde el instante crítico. Este
tiempo vendrá definido como:
W i(m, t )  m Ci 
t 
  C j
jhp ( i )  T j 
(3.11)
La utilización máxima en ese intervalo vendrá definida como:
Wi (m, t )
(3.12)
t
El conjunto de tareas será planificable si para todas cada activación dentro del
periodo de ocupación, existe un instante anterior a su plazo de finalización con
utilización menor que 1. Como la activación m-ésima se produce en el instante
(m-1)Ti+Di, los plazos de finalización serán en el instante (m-1)Ti+Di, por lo tanto
deberá cumplirse:
U i (m, t ) 
min
0t  ( m 1)Ti  Di
Ui (m, t )  1 m  1..N i , N  1..N
(3.13)
Donde Ni es el número de activaciones de cada tarea i dentro de su periodo de
ocupación. Este número se puede calcular teniendo en cuenta que corresponden a la
primera activación cuya ejecución finaliza antes de que se produzca la siguiente:
N i  min( m : min U i (m, t )  1
0 t  mTi
(3.14)
39
3.2.2 Análisis por tiempo de respuesta
El método de análisis por tiempo de respuesta, es más potente que el de
utilidades, pues además de ser exacto nos permite saber la distancia de la peor respuesta
a su plazo máximo de ejecución.
A) Sistemas monoprocesadores con DT sin bloqueos y sin Jitter
Se considera sólo los plazos inferiores o igual al periodo, pues cuando el
deadline es superior al periodo, pueden interferir en una activación de la tarea anteriores
activaciones de la misma, con lo que se complica el análisis.
Si Ri es el tiempo de respuesta de peor caso de de cada tarea i la máxima
interferencia que producen el resto de tareas de mayor prioridad a partir del instante
crítico vendrá dada por el término:
Ii 
 Ri 
 C j
jhp ( i )  T j 

(3.15)
Con lo que el tiempo de repuesta de peor caso, Ri, de la tarea i vendrá dado por
la suma de los términos de interferencia y de ejecución de peor caso:
Ri=Ci + Ii
(3.16)
De forma que el sistema será planificable si todas sus tareas cumplen ejecutarse
antes de sus plazos, es decir:
R i Di
 i=1..N
(3.17)
Cuando analizamos las 3 ecuaciones anteriores, nos damos cuenta de un
problema, el cálculo de la interferencia requiere el conocimiento del tiempo de
respuesta, y el cálculo del tiempo de respuesta a su vez requiere el de la interferencia.
La solución a esto es resolverlo de forma iterativa, mediante las siguientes expresión:
Ri( n 1)  C i 
 Ri 
 C j
jhp ( i )  T j 

(3.18)
De esta forma estimamos los valores de Ri a partir de los valores obtenidos en la
anterior iteración. El valor inicial del tiempo de repuesta será el tiempo de ejecución de
la tarea ,Ri0=Ci. La dependencia monótona de la ecuación respecto Ri garantiza la
convergencia de este algoritmo siempre que la utilización sea inferior al 100% [JOS86],
de forma que la iteración finaliza cuando Ri(n+1)=Ri(n). Si bien si en una iteración anterior
es mayor el tiempo de respuesta que el deadline, no es necesario iterar hasta la
convergencia, pues ya sabremos que dicha tarea no cumple sus plazos.
40
B) Sistemas monoprocesadores con DT con bloqueos y Jitter
Para calcular el tiempo de respuesta en este tipo de sistemas, tendremos que
redefinir cuando comienza el instante crítico.
Teorema 3.2[Aud93] El instante crítico para este tipo de sistemas se produce
cuando la tarea se activa después de sufrir el máximo, recién bloqueado el recurso
compartido con mayor sección crítica y coincidiendo con la activación, también
retrasado, de las tareas con mayor prioridad. El resto de activaciones posteriores se
producirán sin retraso, con el fin de acercar lo máximo las activaciones al instante
crítico.
A partir de este instante crítico, el tiempo de respuesta de peor caso de una tarea
i será igual a:
Ri= Bi + Ci + Ii + Ji
(3.19)
Siendo:
Ii
la interferencia debida a las tareas de mayor o igual prioridad que i
Ji
el jitter o máximo retraso de la tarea i
Bi
el bloque máximo sufrido por la tarea i
El bloque y el retraso de la tarea se consideran conocidos, luego la complicación
surge en el calculo de la interferencia. A diferencia que en el apartado anterior esta no
será producida por la duración Ri, sino desde el instante crítico. Este tiempo se
denominará tiempo de finalización, wi, que representa el tiempo transcurrido desde el
instante crítico hasta que finaliza la ejecución de la tarea i. A partir de esta definicón, y
teniendo en cuenta que la tareas de mayor priorida se han activado Jj antes la
interferencia vendrá dada por la siguiente expresión:
Ii 
 wi  Jj 

C j
Tj 
jhp ( i ) 

(3.20)
Donde el valor del tiempo de finalización vendrá dada por la suma de las
contribuciones desde el instante crítico:
wi  Bi  Ci  I i
(3.21)
El tiempo de respuesta vendrá dado por la suma de tiempo de finalización mas el
retraso de la propia tarea:
Ri= wi + Ji
(3.22)
41
Una vez calculado el tiempo de respuesta, e sistema será planificable si para
todas las tareas se cumple que su ejecución es anterior a su plazo:
Ri  Di  i=1..N
(3.23)
De igual forma que en el apartado anterior, tenemos que aplicar un método
iterativo ya que wi e Ii está relacionados entre si. De esta forma combinado las
ecuaciones anteriores tenemos la expresión iterativa:
wi( n 1)  Bi  Ci 
 wi( n )  J j 
  T C j
jhp ( i ) 
j

(3.24)
La asignación comienza asignando el valor del tiempo de ejecución al tiempo de
finalización: wi(0)=Ci, y finaliza cuando se obtienen dos iteraciones consecutivas iguales
wi(n+1)= wi(n) . El tiempo de respuesta de peor caso de la tarea i será
Ri=wi+Ji.
(3.25)
C) Sistemas monoprocesadores con plazos superiores al periodo
Existe una técnica exacta para el cálculo de tiempos de respuesta de peor caso en
sistemas con plazos superiores al periodo. Esta fue desarrollada por Tindell, y además
incorpora efectos debidos a la compartición de recursos y al retraso [TIN92B][TIN94F].
La notación empleada por Tindell difiere de la empleada por Lehoczky; mientras que el
primero a la primera activación la denota como q=0, Lehoczky la da el valor m=1.
El tiempo de respuesta de peor caso de la tarea q-ésima sigue la expresión dad
por :
wi (q )  (q  1)  C i  Bi 
 wi (q)  J i 

C j
Tj
jhp ( i ) 


(3.26)
Donde la ecuación se resuelve de forma iterativa con el valor inicial dado por
wi (q)=(q+1)Ci, que es la contribución de la propia tarea. Para obtener el tiempo de
respuesta tendremos que aplicar que la activación q-ésima comienza a ejecutar en
t=qTi-Ji, con lo cual debemos restárselo al tiempo de finalización.
(0)
Ri  max wi (q)  J i  qTi 
q  0 ,1, 2..
(3.27)
El numero de activaciones que debemos comprobar (qmax) es la primera que
cumple la desigualdad:
Wi(q)(q+1)Ti
(3.28)
42
La q que obtenemos puede ser menor que la última activación dentro del periodo
de ocupación, que es la primera que cumple Wi(q)(q+1)Ti-Ji. La validez de la
expresión (3.28) se demuestra en [PAL99].
El sistema será planificable si se cumple que el tiempo de respuesta de peor caso
es menor que su plazo de ejcución:
RiDi
(3.29)
3.3. Planificación EDF en sistemas monoprocesadores
3.3.1 Análisis por utilización
La planificación con prioridades fijas es un tema de reciente actualidad en los
sistemas de tiempo real. Se comprueba que para sistema monoprocesadores expulsores
sin recursos compartidos ni retrasos la planificación EDF es óptimo. Así muchos
sistemas que no son planificables bajo prioridades fijas si lo son con prioridades fijas.
Cuando tenemos un sistema con las propiedades descritas anteriormente, existe
una forma sencilla de saber si dicho sistema es planificable. Podemos garantizar que el
sistema cumple los plazos de respuesta si cumple:
N
U 
i 1
Ci
1
Ti
(3.30)
Luego es optima con una cota de utilización del 100%.
Veamos un ejemplo que no cumple los plazos planificándose con RMA y si lo
hace con EDF:
Ejemplo:
43
Planificado por RMA
No cumple el plazo
Planificado con EDF
3.3.2 Análisis por cálculo el tiempo de respuesta
El test de planificación por utilización es muy sencillo, pero el sistema al que es
aplicable tiene muchas restricciones, tales como que no poder sufrir bloqueos o no tener
retaso. El cálculo de respuesta de peor caso nos permite eliminar las restricciones
anteriores pudiéndose aplicar a todos los sistemas de tiempo real. Si bien la
complicación de cálculo es mayor, como veremos en este apartado.
El cálculo de tiempos de respuesta fue desarrollado por Spuri en el año 1996
[SPR96A] y [SPR96B] aunque en este apartado vamos a utilizar la notación empleada
por Palencia y Glez Harbour [PAL2002].
El análisis de tiempo de respuesta de peor caso está basdo en la creación del
mayor periodo de ocupación. El periodo de ocupación se define en EDF como el tiempo
durante el cual el procesador se encuentra ocupado procesando alguna ejecución
pendiente de alguna tarea. En RMA el instante crítico ocurría cuando comenzaba el
periodo de ocupación, en EDF estoa propiedad no es cierta aunque le concepto de
periodo de ocupación es utilizado. Para encontrar el instante crítico definiremos el
siguiente teorema:
44
Teorema 3.3[SPURI]:El tiempo de peor caso de una tarea a ocurre cuando se
activa con máximo retraso dentro del periodo de ocupación, donde todas las tareas se
relajan simultáneamente con sus máximos retraso al comienzo de dicho periodo de
ocupación. Además de forma que su deadline coincida con alguno de las otras tareas o
cuando comienza con el inicio del periodo de ocupación.
Para calcular dicho tiempo de respuesta de peor caso de la tarea a, tendremos
que ver la contribución de cada tarea i en un periodo de ocupación de longitud t, y con
el deadline de a ocurrido en D.
El número de activaciones de la tarea a en el periodo de ocupación las
denotaremos como pt siendo la solución a la expresión:
t  Ji 
pt  

 Ti 
(3.31)
Por otro lado el número de activaciones que interfieren a la tarea con deadline D
serán debidas por aquellas cuyo deadline es menor que D, que serán dadas por la
expresión :
 J  D  di 
pD   i
 1
Ti


(3.32)
El número de activaciones que interfieren a la tarea a será el menor de ambos,
ya que deben cumplir, tanto que se encuentre dentro del periodo de ocupación, como
que el deadline sea menor que D, con lo que la interferencia será:
 t  J i   J i  D  di  
Wi (t , D)  min 
, 
  1Ci
T
T
i
 
 i  
(3.33)
Los posibles valores del deadline, según se vio en el teorema 3.3 son los que
coinciden con algún otro deadline o los creados por la propia tarea activándose en el
comienzo del periodo de ocupación, estos vendrán dados por la expresión:
 L  Ji 
  ( p  1)Ti  J i  d i  p  1..

 Ti 
(3.34)
donde L corresponde a la longitud del periodo de ocupación, creado cuando todas las
tareas se activan en el mismo instante tras sufrir el máximo retraso, que se calcula de
forma iterativa:
45
 L( n )  J i 
L( n1)   
Ci
Ti 
i 
(3.35)
Es importante en el análisis saber ver cuales de los deadlines son los que pueden
coincidir con la activación p-ésima de la tarea. Denotaremos a estos instantes como
 ( p) :
 ( p)  x   : ( p  1)Ta  J a  d a  x  pTa  J a  d a  (3.36)
Para cada elemento x de ( p ) , el valor de inicio de la activación de la tarea de
análisis a respecto al comienzo del periodo de oaupación, se denotará como A y vendrá
dado por la expresión:
A  x  ( p  1)Ta  J a  d a 
(3.37)
Todo deadline se podrá poner en función de la activación A y de la activación a
la que corresponda:
D A ( p)  A  J a  ( p  1)Ta  d a
(3.38)
Cuando la primera activación de la tarea a ocurre en el tiempo A después del
comienzo del periodo de ocupación el tiempo de completación de su activación p-ésima
vendrá dada por:
waA ( p)  pCa  Wi (waA ( p), D A ( p))
(3.39)
i  a
Con lo que el tiempo de repuesta para esa activación viene dado por:
R A ( p)  w A ( p)  A  J a  ( p  1)Ta
(3.40)
Y por último, el tiempo de respuesta de peor caso de la tarea a se puede
determinar como el tiempo de respuesta de mayor duración:
Ra  maxRa ( p) 
L  Ja 
p  1..
, A
 Ta 
(3.41)
46
3.4. Planificación en sistemas distribuidos. Modelo transaccional.
3.4.1 Introducción
Hasta ahora solo hemos analizado sistemas monoprocesadores, en este apartado
veremos las diferentes técnicas de análisis en sistemas multiprocesadores o distribuidos.
La importancia de los sistemas distribuidos es grande, ya que esta es la configuración
de muchos de los sistemas de tiempo real, ya que la potencia de éstos es mucho mayor
que los monoprocesadores.
La planificación es sistemas distribuidos se complica bastante respecto a la de
sistemas monoprocesadores. Además de la asignación prioridades que debe de
realizarse de forma heurística [TIN92A], surgen problemas con la sincronización.
En el análisis de sistemas distribuidos ha de analizarse al igual que el procesador
el sistema de comunicaciones entre los diferentes procesadores. Como comentamos en
el primer apartado consideraremos tanto el tiempo de ejecución de las tareas como el
tiempo de transmisión de los mensajes como acciones.
El proceso esquematizado que ocurrirá en un sistema distribuido puede
resumirse de la forma siguiente: llegada de un evento periódico externo ei, éste
desencadena una serie de acciones aij tanto en el procesador como en las redes de
comunicación, donde el subíndice j indica la posición de la acción respecto a la llegada
del evento. Cada acción aij se la considera un tiempo de ejecución Cij y hereda el
periodo del evento externo Tj.
Podemos distinguir los siguientes requisitos temporales a las diferentes acciones:

Plazos Globales: plazos relativos a las llegadas del evento externo

Plazos locales: plazos considerados desde el instante real en que se activó
la acción en la repuesta al evento.

Plazos de principio-a-fin: plazos asignados a las secuencias de respuesta
completa del evento.
La notación para los plazos será la siguiente: llamaremos Dj al plazo global de la
acción aij, dj al plazo local y EDi al plazo principio-a-fin para la respuesta al evento ei,
que coincide con el plazo global de la última acción de la cadena de respuestas. En la
siguiente figura se pueden ver ejemplos de la notación y de estos plazos.
47
a11
a12
a13
Una de las mayores problemáticas de los sistemas distribuidos es la precedencia
en la activación de las tareas y mensajes de una misma secuencia de respuesta. Así la
acción aij se activa en el instante que finaliza la acción precedente aij-1 en la secuencia, a
excepción de la primera que se activa a la llegada del evento externo y se produce de
forma perfectamente periódica.
Podemos resolver la problemática de la precedencia a partir de la asignación a
las acciones un retraso. La primera acción tendrá retraso nulo, Ji1 =0, sin embargo las
subsiguientes acciones pueden sufrir un retraso igual a la diferencia de tiempo entre el
tiempo de respuesta de peor caso y el mejor de la acción precedente.
J ij  Rij 1  Rijb1
j0
J i0  0
j0
(3.42)
donde Rij-1 es el tiempo de respuesta global de peor caso de la acción previa de aij y
Rijb1 el tiempo de mejor caso.
En un principio Tidell y Clark [TIN94F] consideraban como primera
aproximación (pesimista) Rijb1 =0, con lo que los retrasos serán J ij  Rij1 . En la
actualidad hay métodos para el cálculo exacto de este tiempo de mejor caso, elaborado
por Redell [RED2002].
48
3.4.1 Análisis en RMA bajo la aproximación de tareas independientes.
Tindell y Clark aplicaron la notación elaborada por ellos mismo para sistemas
monoprocesadores [TIN92B] con el concepto correspondiente a los retrasos visto en la
introducción, considerando cada acción como si se trataran de tareas independientes
entre si. Ahora las tareas que pueden interferir en cada acción son las que se encuentran
en el mismo recurso(procesador o red de comunicaciones) con mayor prioridad a dicha
acción.
El instante crítico de cada acción se consideran como si fueran independientes,
lo cual no hace no empeorar la ejecución de la tarea analizada, pues la procedencia hace
que sea imposible hacer coincidir sólo los instantes críticos. El tiempo de finalización
de la activación p-ésima (consideraremos p=1 la primera activación) de la acción aij se
obtiene de forma semejante que en tarea monoprocesadores mediante el método
iterativo como:
wij
n 1
 wij n ( p)  J k 
( p)  pCij  Bij   
  Ck
T
khp ( ij ) 

k

(3.43)
donde ahora hp(i,j) es el conjunto de acciones de mayor o igual prioridad que la
asignada a la acción aij ejecutando en el mismo procesador.
El tiempo de respuesta global se obtiene considerando el instante en el que se
activó y vendrá dado por la expresión:
Rij  max wij ( p)  Rij1  ( p  1)Ti 
p 1, 2 ,...
(3.44)
La iteración sobre p finaliza con el primer valor de p que cumple:
wi ( p)  p  Ti
(3.45)
Esta forma de calcular el tiempo de respuesta tiene un problema añadido con
respecto al cálculo a sistemas monoprocesadores, los tiempos de respuesta (3.43)
requieren el conocimiento previo de los términos de retraso, que a su vez requiere el
conocimiento previo de los tiempos de respuesta (3.42).
49
Para solucionar el problema
Tindell y Clark diseñaron un método
iterativo que permite calcular los
tiempos de respuesta de peor caso de
las tareas. El método consite en
estimar los valores de los términos
de retraso y en función de los cuales
se calculan los tiempos de respuesta,
que a su vez se pueden usar para
volver a calcular los tiempos de
retraso. El proceso continua hasta
que se obtengan los mismos tiempos
de repuesta en dos iteraciones
consecutivas. La convergencia se
asegura por el comportamiento
monótono tanto del cálculo de los
tiempos de respuesta como en los
términos de retraso.
3.4.2 Análisis en RMA para tareas con offsets estáticos y dinámicos
En los sistemas distribuidos basados en tareas independientes, las técnicas de
análisis producen un pesimismo muy grande, lo que hace que sólo se pueda garantizar
sistemas con niveles de utilización muy pobres.
En el año 1994 Tindell desarrolló una técnica para calcular los tiempos de
respuesta de peor caso (o cota superior de los mismos) para un conjuntos de tareas con
offsets estáticos. El sistema está compuesto de transacciones periódicas, cada una de
ellas con varias tareas. Cada tarea se libera después de transcurrido cierto tiempo)
offset) desde la legada del evento que dispara la transacción. Tindell limitó los offsets a
ser menores que el periodo de dicha transacción. Este análisis es útil en los sistemas
donde la activación de las tareas se hacen de forma precisa para evitar efectos negativos
de la activación retrasada.
Palencia[PAL99] desarrolla una nueva técnica basada en análisis de Tindell pero
donde el jitter no está limitado a ser menor que el periodo y los offsets no son estáticos,
de forma que pueden cambiar de una a otra activación. Por ejemplo, en sistemas
distribuidos una tarea se activa cuando la precedente finaliza, siendo diferente el
instante de activación en los diferentes periodos. Además en sistemas distribuidos es
usual que el plazo sea mayor que el periodo, de aquí la importancia de no limitar el
retraso a ser inferior al periodo.
50
En este capítulo desarrollaremos la técnica empleada por Palencia, comenzando
con el análisis para offset estáticos y extendiéndolo luego para offset dinámicos y su
aplicabilidad a sistemas distribuidos.
A) Análisis de offsets estáticos
Consideremos un único procesador donde ejecutan un conjunto de tareas
agrupadas en entidades con mismo periodo llamadas transacciones, y que denotaremos
como i. Cada tarea de la transacción se activa cuando ha transcurrido un intervalo
arbitrario y fijado llamado offset.
Notación:
i Transacción
ijTarea, donde el índice i fija la transacción a la que pertenece, i, y el índice j
nos indica la posición que ocupa dentro del conjunto de tareas en dicha
transacción. Denotaremos por ab a la tarea de análisis.
ij fase de activación de la tarea ij (puede ser mayor que el periodo)
Cij tiempo de ejecución de peor caso de la tarea ij
Jij retraso de la tarea ij.
Ti periodo de la transacción i
RijTiempo de respuesta de peor caso de la tarea ij
DijPlazo global de ejcución de la tarea ij
Bab término de bloqueo de la tarea ab
Con estas consideraciones, si el evento externo llega en un instante t 0, la tarea se
activa en un intervalo [t0+ij, t0+ij+Jij].
Calcularemos la expresión analítica de los tiempos de respuesta de peor caso de
las diferentes tareas. En un principio estudiaremos el cálculo exacto aunque como se
verá este es inabordable sistemas grandes con muchas tareas, con lo que aproximaremos
con un análisis pesimista.
A diferencia de las tareas independientes la existencia de offset nos limita el
número de activaciones que interfieren a una tarea dada. De esta manera a la hora de
construir el escenario de peor caso para la tarea ab, debemos tener en cuenta que en el
instante criticó de dicha tarea no pueden coincidir todas las tareas con mayor prioridad a
dicha tarea, como ocurría cuando eran consideradas independientes. La existencia de los
offset hace imposible la activación simultanea de todas las tareas de mayor prioridad.
51
A la hora de analizar una determinada tarea, la variación del offset de las tareas
con prioridad superior sumando o restando periodos completos no causa ningún efecto
sobre su tiempo de respuesta. Por sencillez en el análisis consideraremos el offset
reducido ij, que es un valor positivo menor que el periodo y definido como:
ij=ij mod Ti.
A.1.Análisis exacto
La forma de proceder el análisis será la siguiente:
1. Contribución de cada tarea al tiempo de respuesta de peor caso de ab
suponiendo conocido el instante crítico.
2. Cálculo del instante crítico.
1.Contribución de cada tarea fijado tc
Sea i la fase relativa entre la última activación de la transacción i antes del
instante crítico y el propio instante crítico. Se cumple que 0i<Ti.
Para calcular la contribución de ij al tiempo de respuesta de tareas de menor
prioridad distinguiremos entre tres tipos conjuntos de las activaciones de la tarea ij:

Conjunto 0 : Activaciones ocurridas antes del instante crítico y que no
pueden ocurrir después del instante crítico, aunque se produzca el
máximo retraso Jij.

Conjunto 1: Activaciones que se producen en el instante crítico o se
pueden retrasar para comenzar en el.

Conjunto2: Activaciones producidas después del instante crítico.
Según sea la relación entre i y ij podemos distinguir entre dos tipos de
escenarios. La figura siguiente muestra estos escenarios. El “escenario 1” corresponde
al caso en el que iij . Por el contrario el “escenario 2” ocurre cuando i<ij. En la
figura se muestra también el conjunto de tareas que pueden retrasarse hasta el instante
crítico (conjunto 1), donde las líneas punteadas representa el retraso. En ambos
escenarios el instante t0 corresponde a la primera tarea de la transacción que pertenece al
conjunto 1 y que puede retrasarse hasta el instante crítico. Las activaciones de la tarea ij
comprendidas entre t0 y tc también pertenecen al conjunto 1 y se pueden retrasar hasta tc.
En el “escenario 1” el conjunto de tareas pertenecientes a conjunto 1 son los
correspondientes a los instantes t0, t1, t2, siendo las activaciones anteriores a t0 del
conjunto 0 y las posteriores a t2 al conjunto 2. En el “escenario2” la activación
correspondiente al evento que llega en t2 pertenece al conjunto 2, ya que la tarea ij se
produce después de tc.
52
Una vez clasificadas las activaciones de la tarea ij en los tres conjuntos, el
cálculo de los retrasos que producen las contribuciones de peor caso sobre tareas de
menor prioridad son las que siguen el siguiente teorema.
Teorema 3.3 [PALENCIA]: Sea tc un instante crítico para la activación de una
tarea ab y i el desfase entre el patrón de activaciones de la transacción i y dicho
instante crítico. La contribución de peor caso de la tarea ij al tiempo de repuesta de la
tarea ab ocurre cuando las activaciones de ij pertenecientes al Conjunto 1 sufren un
retraso tal que coinciden en el instante crítico, y las activaciones del Conjunto 2 ocurren
con retraso nulo.
A partir del teorema anterior calcularemos el número de activaciones de la tarea
ij incluidas en el conjunto 1 y que se comienzan a ejecutar en tc. A este número lo
denotaremos como nij (en el ejemplo gráfico nij=3 en el “escenario 1” y nij=2 en el
“escenario2”). Para calcular este número de tareas definiremos dos nuevas magnitudes:
 i  i  ij modTi
(3.46)
i  Ti   i
(3.47)
i es la diferencia temporal entre el instante crítico y el instante en el que se
hubiera producido la última activación del Conjunto 1 sino hubiera sufrido ningún
retraso. La diferencia entre el periodo y i es la magnitud i.
53
Con estas nuevas magnitudes tenemos que el número de activaciones
activaciones del conjunto 0, nij son:
 J ij   i 
 J ij   i 
nij  
 1  

 Ti 
 Ti 
de
(3.48)
A partir de l teorema 3.3 la máxima interferencia de la tarea ij al tiempo de
respuesta de ab desde el instante crítico hasta un instante t se determina a partir de la
expresión:
 t   i ( ) 
W ( ij , i , t )  nij Cij  
Cij 
 Ti

  J ij   i ( )   t   i ( )  
  

 Cij
T
T
i
i

 

(3.49)
La interferencia de todas las tareas de la transacción i sobre la ejecución de ab
se calculará sumando todas las contribuciones de las tareas de la transacción con mayor
prioridad a ab.
W (i , i , t ) 
W (
jhpi ( ab )
ij
, i , t )
(3.50)
donde,
hpi(ab)
es el conjunto de tareas de la transacción i con mayor o igual prioridad
que ab.
2. Cálculo del instante crítico.
Hasta ahora nos hemos centrado en el cálculo de la interferencia conocido el
instante crítico, ahora nos centraremos en el cálculo de dicho instante crítico, que nos
determinará el valor i de las diferentes transacciones y que nos determinará la
interferencia de sus tareas sobre ab. Para obtener el valor del instante crítico, tc¸
aplicaremos el siguiente teorema:
Teorema 3.4[PALENCIA]: La máxima interferencia de una transacción i sobre la
ejecución de una tarea ab se obtiene cuando la primera activación, dentro del periodo de
ocupación, de alguna tarea ik del conjunto hpi(ab) coincide con el instante crítico
después de haber experimentado el máximo retraso Jik.
54
Aplicando el teorema anterior, supongamos que ik es la tarea que origina el
instante crítico, podemos determinar el desfase entre la activación de la transacción y el
instante crítico como:
i  ik  J ik  mod Ti
(3.51)
Sustituyendo este expresión en la ecuación (3.46) y (3.47) podemos obtener la
fase ijk de una tarea ij cuando el instante crítico es creado por ik:
 ijk   ( )   
i
ik
 J ik  mod T
 Ti  ik  J ik  mod Ti  ij mod Ti
(3.52)
la cual aplicando las propiedades de la función módulo conduce a la expresión más
sencilla:
i jk  Ti  ik  J ik  ij modTi
(3.53)
Utilizando este valor podemos obtener la expresión que nos da la contribución al
peor caso de la transacción i cuando la tarea ik es la que genera el instante crítico en
dicha transacción.
Wik ( ab , t )  W (i ,  , t ) 

jhpi (
 J ij   ijk 
 t   ijk 

Cij  
Cij
Ti

 Ti 
ab ) 
(3.54)
De esta forma el tiempo de respeta de peor caso de la tarea de estudio, ab
requiere la aplicación de esta notación a cada una de las transacciones del sistema.
El problema que se nos presenta Ahora es encontrar para cada transacción la
acción que genera el instante crítico. Si queremos chequear un análisis exacto debemos
chequear todas las posibles variaciones en la tarea elegida para cada transacción, y
elegir entre todas ellas la que genere el mayor tiempo de respuesta.
El número de variaciones, y por tanto el número posible de instantes críticos
diferentes que necesitamos chequear, viene determinado por el número de tareas de
mayor o igual prioridad a la tarea analizada en cada transacción. Del sistema. La propia
tarea de análisis puede originar el instante crítico para su transacción, por lo que
tenemos que considerarla en las variaciones. El número total de variaciones es pués:
N v ( ab )  ( N a ( ab )  1)  N1 ( ab )  ...  ( N a ( ab )  1)   N i ( ab )
(3.55)
i  a
55
Por el índice  entenderemos cada una de éstas variaciones que generan el
instante crítico. En cada una de éstas podemos calcular el tiempo de finalización
correspondiente a cada una de las activaciones de la tarea ab. Este tiempo se obtiene
considerando la ejecución de ab junto con la interferencia debida al resto de tareas del
sistema:

v
v
wab
( p)  Bab  ( p  p0v,ab  1)Cab  Wiv(i )  ab , wab
( p)

(3.56)
i
donde p0,abv es la primera activación de la tarea ab considerada en el periodo de
ocupación y calculada como:
 J ab   abv ( a ) 
p0v,ab   
 1
Ta


(3.57)
La solución a la ecuación (3.56) se realiza de forma iterativa, comenzando con
un valor wabv(p)=0. El tiempo de respuesta global se obtiene restando, del tiempo de
finalización el instante en el que se produjo la llegada del evento que activó la
transacción. El instante de activación de la transacción correspondiente vendrá dada por
abv(a)+(p-1)Ta-ab (donde ab es el término de retraso real y no el reducido). De esta
forma el tiempo de repuesta global para la activación p-ésima generada por el instante
crítico  vendrá dado por:
v
v
Rab
( p)  wab
( p)  abv ( a)  ( p  1)Ta   ab
(3.58)
El análisis se repite para cada variación  desde p0v,ab hasta p Lv ,ab que es la última
activación que se ejecuta dentro del periodo de ocupación. Este valor se puede calcular
mediante de dos diferentes formas:
a) A partir de la longitud del periodo de ocupación:
p
v
L , ab
 Lvab   abv ( a ) 


Ta


y donde L se puede calcular a partir de la expresión :
  Lvab   abv ( a ) 

v
C  W ( , Lv ) (3.59)
L  Bab   

p

1

0, ab
iv( i )
ab
ab

 ab 
Ta
i



v
ab
56
b) Podemos también calcular p Lv ,ab como el primer valor de p p0v,ab que cumpla
la siguiente inecuación:
v
wab
( p)  p  Ta  abv (a)
(3.60)
Para calcular el tiempo de respuesta de peor caso de la tarea ab debemos
determinar el máximo de todas las posibles instantes críticos y de todas las activaciones
en dichos instantes críticos.




v
Rab  max max
Rab
( p) 
v
v
v  p  p0 , ab .. p L , ab

(3.61)
Esta técnica es exacta pero el número de casos a chequear crece
exponencialmente con el número de tareas (algoritmo NP-completo). Esto significa que
este algoritmo será intratable para la mayoría de casos prácticos.
A.2.Análisis aproximado
Para los casos donde el método exacto es inabordable Tidell [TIN94B]
desarrolló un método de obtener cotas superiores y reducir el análisis. Si los tiempos de
respuesta de peor caso con este método son menores que el deadline podremos
garantizar la planficabilidad del sistema, si bien si no los cumple no podremos decir que
no sea planificable.
Para evitar estudiar todos los posibles instante críticos se obtiene una cota
superior de la interferencia debida a tareas de la misma transacción. Así la interferencia
total sobre la tarea ab será la suma de todas las cotas superiores de todas las
transacciones.
La cota superior de la interferencia a la tarea ab por las tareas de la transacción
i en un periodo de ocupación w, vendrá dada por la expresión:
Wi * ( ab , w)  max Wik ( ab ; w)
(3.62)
khpi ( ab )
57
Para introducir menor pesimismo en análisis no usaremos la cota superior para la
propia transacción de la tarea de estudio a. De esta manera, para el análisis debemos
considerar todos los instantes críticos creadas por cada una de las tareas pertenecientes a
la transacción con prioridad mayor o igual a ab. El tiempo de respuesta de peor caso
vendrá determinado por la expresión:
(3.63)
wabc ( p)  Bab  ( p  p0,abc  1)Cab  Wac ( ab , wabc ( p))  Wi * ( ab , wabc ( p)
i  a
Esta ecuación se resolverá de forma iterativa al igual que en el método exacto
visto anteriormente.
El valor del tiempo de respuesta de peor caso se obtiene restando del tiempo de
finalización el instante donde se produjo la llegada del evento externo asociado, y
tomando el peor de los tiempos de respuesta obtenido:
Rabc ( p)  wabc ( p)   abc  ( p  1)Ta   ab
Rab 
 max ( R ( p)
abc

chp a ( ab ) b 
 p  p0 , abc ...pL , abc
max
(3.64)
(3.65)
58
Descargar