ciclic: herramienta para crear planificadores ciclicos factibles

Transcripción

ciclic: herramienta para crear planificadores ciclicos factibles
CICLIC: HERRAMIENTA PARA CREAR PLANIFICADORES
CICLICOS FACTIBLES
José Yépez, Josep Guardia, Manel Velasco, Jordi Ayza, Pau Marti y Josep M. Fuertes
Dep. de Enginyeria de Sistemes, Automàtica i Informàtica Industrial, Universitat Politècnica de Catalunya
C/ Pau Gargallo 5, 08028 Barcelona, España
(jose.yepez, josep.guardia, manel.velasco, jordi.ayza, pau.marti, josep.m.fuertes)@upc.edu
Resumen
Uno de los planteamientos válidos para realizar la
implementación de la gestión de tareas en sistemas
de tiempo real periódicos lo constituye la utilización
de planificadores cíclicos. Este método de
planificación goza de un alto grado de determinismo,
previsibilidad,
fiabilidad
y
sencillez
de
implementación. Además, es un método bien
conocido y ampliamente utilizado en entornos
industriales. El principal inconveniente de este tipo
de planificador es la falta de flexibilidad, ya que
cualquier cambio en el conjunto de tareas o en sus
características temporales obliga a rehacer el plan
de ejecución. Para solventar estos inconvenientes es
necesario, y muchas veces indispensable, contar con
herramientas que ayuden a los diseñadores del
sistema en la creación de la planificación cíclica de
forma automática. En este trabajo se describe una
herramienta denominada CICLIC, que sirve de
soporte en el diseño o regeneración de
planificaciones cíclicas. El mecanismo de diseño se
basa en algoritmos de búsqueda exhaustiva que
utilizan reglas heurísticas para optimizar el camino
de búsqueda. Para ilustrar el uso de CICLIC se
presentan algunos ejemplos.
Palabras Clave: Planificación cíclica, sistemas de
tiempo real, simulación.
1
INTRODUCCION
Una de las características más importantes de un
sistema de tiempo real es que su correcto
funcionamiento depende tanto de proporcionar las
salidas adecuadas como de hacerlo dentro del
intervalo de tiempo requerido [16]. Este requisito
conduce a uno de los problemas fundamentales en el
diseño de sistemas de tiempo real, que es la
planificación del tiempo de ejecución, de forma que
las respuestas se produzcan dentro del plazo fijado.
El problema general de automatizar la generación de
una planificación factible de un conjunto de tareas es
un problema NP-Hard [8]. Una aproximación para
construir sistemas de tiempo real consiste en calcular
la planificación admisible antes de poner en marcha
el sistema, es decir fuera de línea (off-line).
Posteriormente, el planificador de tiempo real ejecuta
las tareas de acuerdo al plan de ejecución establecido.
El planteamiento clásico de planificador de tiempo
real off-line, lo constituye el planificador cíclico. Un
planificador cíclico [1,7] es un procedimiento
iterativo que permite multiplexar de forma explícita
un conjunto de tareas sobre un procesador. Los
planificadores cíclicos están definidos por tablas de
planificación o planes de ejecución, las cuales se
construyen a partir del conjunto de tareas y sus
restricciones temporales. Cada entrada de la tabla
contiene el segmento de código asociado a una de las
tareas que conforman el plan. El procesador ejecuta
cada uno de los segmentos de código de la tabla en
estricto orden. Cuando todas las entradas de la tabla
han sido ejecutadas el procesador regresa a la
primera entrada de la tabla y el proceso se repite.
Para mantener la planificación cíclica sincronizada
con el tiempo de la aplicación, se utilizan
interrupciones periódicas dadas por un reloj.
Específicamente, de forma estándar la tabla de planes
contiene un plan principal que define la secuencia de
tareas a ejecutar durante un periodo fijo de tiempo
llamado ciclo principal. El plan principal se divide en
uno o más planes secundarios, los cuales incluyen la
secuencia de tareas que deben ejecutarse durante un
periodo fijo de tiempo llamado ciclo secundario. En
general los planes secundarios de un mismo plan
principal contendrán secuencias de distintas tareas,
dependiendo de las características temporales de cada
una de ellas. En realidad, cada plan secundario
contiene uno o más marcos. Y dentro de cada marco
se ejecuta una tarea, o parte de ella, según la
secuencia correspondiente al plan secundario.
Para verificar las restricciones temporales de un
conjunto de tareas concurrentes, los diseñadores
deben comprobar que dichas restricciones se
cumplan. Actualmente existe un numeroso conjunto
de métodos cuantitativos que forman parte de la
teoría de planificación de tiempo real [2, 11], etc.
Esta teoría ayuda al diseñador del sistema a estudiar
y predecir el comportamiento temporal de un
conjunto de tareas de tiempo real a través de test y
simulación de la planificación. El test
de
planificabilidad establece si es factible llevar a cabo
la planificación de un conjunto de tareas mediante un
método especificó sin necesidad de determinar dicha
planificación. La simulación de la planificación
consiste en determinar una planificación en un
intervalo de tiempo, y observar las propiedades
temporales en la planificación calculada.
sistemas de tiempo real en la construcción y
mantenimiento de planificadores cíclicos. El
desarrollo de esta herramienta está motivado por la
carencia de herramientas flexibles para construir
planificadores cíclicos.
Las primeras contribuciones teóricas sobre
planificación fueron propuestas hace alrededor de 30
años [11]. Esta teoría ha evolucionado para hacer
frente a las diferentes exigencias de las aplicaciones
[10,18] y ha sido utilizada satisfactoriamente en
muchos proyectos [13]. Sin embargo, pocas
herramientas han sido desarrolladas para ayudar a los
diseñadores del sistema a generar estos resultados
automáticamente. Entre ellas cabe citar:
Este trabajo está organizado de la siguiente manera.
En la sección 2 se describe el algoritmo propuesto
partiendo de las características de la planificación
cíclica, mostrando la complejidad del problema y la
optimización en la búsqueda de planificadores
factibles. En la sección 3, se describen las
características de la herramienta CICLIC. En la
sección 4, se ilustra el uso de la herramienta CICLIC
a través de dos ejemplos. Finalmente, se presentan
las conclusiones y una orientación para trabajos
futuros en la sección 5.
Rapid-RMA [15], es una de las herramientas de
análisis más completas para estudiar la
planificabilidad bajo condiciones de peor caso.
Soporta la mayoría de los algoritmos de planificación
clásicos y test de planificabilidad. No es de libre
acceso.
TimeSys [14] es un entorno para el modelado,
análisis y simulación del comportamiento temporal
de sistema de tiempo real. Esta herramienta provee la
mayoría de los algoritmos de planificación clásicos.
YASA [3] y la herramienta de la Universidad Libre
de Bruxelles [6] están enfocadas únicamente a la
simulación de la planificación. No ofrecen un test de
planificabilidad.
MAST [9] es una herramienta de trabajo ADA y
proporciona algunas pruebas de factibilidad y
servicios de simulación para planificadores con
prioridades fijas.
CHEDDAR [5] provee un marco de trabajo de libre
acceso y flexible, el cual implementa la mayoría de
los métodos de la teoría de planificación clásica. Sin
embargo no trata planificadores cíclicos.
El mecanismo de diseño de CICLIC se basa en
algoritmos de búsqueda exhaustiva que utilizan
reglas heurísticas para optimizar el camino de
búsqueda. CICLIC se caracteriza por ser una
herramienta portable, fiable y fácil de utilizar.
2
PLANIFICACIÓN CÍCLICA
Los planificadores cíclicos ejecutan las tareas en
secuencia según unas tablas de planificación o planes
de ejecución. Estas tablas o planes se construyen
antes de poner en marcha el sistema. Para construir
un plan se debe determinar, en primer lugar, la
duración de los periodos de los ciclos (ciclo
principal, ciclos secundarios). Una vez hecho ésto se
procede a asignar ejecuciones de tareas a marcos
hasta obtener una planificación que asegure el
cumplimiento de las restricciones temporales de las
tareas.
Específicamente,
nos
basamos
en
planificadores con reloj de ciclo secundario, en el
cual se produce un pulso de reloj cada vez que
finaliza un ciclo secundario para mantener la
planificación cíclica sincronizada.
La duración del ciclo principal y secundario debe
cumplir ciertas condiciones para que pueda existir
una planificación admisible. Dichas condiciones se
describen a continuación [7].
2.1
CARACTERIZACIÓN
DE
PERIODOS DE LOS CICLOS
LOS
La gran mayoría de estas herramientas no permiten la
determinación de planes de ejecución de forma
automática para planificación cíclica, excepto RapidRMA. Ésto es debido en gran parte a la naturaleza
del problema a resolver y la carencia de algoritmos
que generen automáticamente planes de ejecución en
un tiempo razonable.
Sea un conjunto de n tareas periódicas τ
representadas por el conjunto {(C1,T1,D1),
(C2,T2,D2),.…,(Cn,Tn,Dn)}, donde C representa el
tiempo de ejecución, T el periodo y D el plazo. De
acuerdo con estas definiciones asumimos la relación
C ≤ D ≤ T.
En este trabajo se describe una herramienta llamada
CICLIC, que sirve de apoyo a los diseñadores de
La duración del ciclo principal M, denominado
también hiperperiodo, es el mínimo común múltiplo
de los periodos de las tareas,
M = mcm(Ti )
(1)
En cuanto a la duración del ciclo secundario m,
puede haber varias soluciones admisibles. Si sólo
existe un temporizador que controla la duración de
los ciclos secundarios, entonces el valor de m debe
cumplir las siguientes condiciones [1,7]:
a.
τ i , τ ik
pueda ser
restricciones temporales, mj ha de cumplir, además de
(6) la siguiente condición:
Ci ≤ m −
m debe ser mayor o igual que el mayor de los
tiempos de computo máximos de las tareas:
(3)
(4)
m debe cumplir:
(5)
para que entre el instante de activación de cada
tarea y su plazo exista un ciclo secundario
completo.
Si no existe ningún valor que verifique el conjunto de
condiciones anteriores, entonces el conjunto de tareas
no puede ser planificado con un planificador cíclico.
INSERCIÓN DE TAREAS EN CICLOS
SECUNDARIOS
A partir de las condiciones (2), (3), (4) y (5) se
obtiene el conjunto de valores que puede tomar la
duración del ciclo secundario m. Puesto que la
duración de M es fija, según el valor de m elegido se
tienen ncs = M/m ciclos secundarios en el plan
principal. Así que un plan principal esta definido por
ncs planes secundarios. Por otra parte, cada plan
principal, incluye
nei =
M
Ti
(6)
ejecuciones de cada tarea τi. De modo que cada plan
secundario está constituido por una secuencia de
{
}
marcos: σ = τ ik ,τ jl ,,τ rs , cada uno de ellos
asociado a la ejecución de una tarea.
∑
∀l |τ l ∈σ ( m j )
Cl
(7)
de tal forma que exista tiempo libre en dicho ciclo
secundario para que pueda ejecutarse la tarea.
2.3
m debe ser un submúltiplo de la duración del
ciclo principal M:
∀i : m + (m − mcd (m,Ti )) ≤ Di
2.2
Para que la ejecución k-ésima de
(6)
(2)
∃k : M = k .m
d.
(k − 1) x Ti ≤ ( j − 1) x m ≤ (k − 1) x Ti + Di − m
incluida en σ (m j ) , de forma que se garanticen sus
∀i : m ≥ max(Ci )
c.
caracterizada por (Ci, Ti, Di), podrá ser incluida en los
j-ésimos ciclos secundarios, ∀j ∈ [1 ncs ], tal que:
m debe ser menor o igual que el plazo de
ejecución de cualquier tarea:
∀i : m ≤ Di
b.
A partir de la condición (5) se infiere que la k-ésima
ejecución, ∀k ∈ [1 nei ], de una tarea τi,
BUSQUEDA DE UNA PLANIFICACIÓN
FACTIBLE
Una planificación admisible es aquella que permite
que el conjunto de tareas se ejecute de forma que se
cumplan sus requisitos temporales. Para resolver el
problema de establecer una planificación admisible
se pueden utilizar algoritmos de back-tracking.
Los algoritmos de retroceso buscan una solución
recorriendo exhaustivamente el espacio de soluciones
del problema. La búsqueda se facilita organizando en
árbol el espacio de soluciones. En este caso, la raíz
de éste árbol Πo es la planificación trivialmente
admisible para 0 tareas. Cada nodo Πi de este árbol
contiene una solución parcial al problema consistente
en la planificación de i tareas, donde i es la
profundidad del nodo. Cada nodo Πi tiene h posibles
sucesores, estos nodos sucesores contemplan todos
los modos de incluir en la planificación uno de las n1 tareas que quedan por planificar. El espacio de
soluciones está definido por todos los caminos desde
el nodo raíz a los nodos terminales. Cada nodo del
árbol del espacio de soluciones representa un estado
del problema, por ello a la organización en árbol del
espacio de soluciones se le llama árbol del espacio de
estados.
El algoritmo de retroceso recorre en profundidad el
árbol del espacio de estados hasta encontrar una
solución admisible para el problema. Lo cual se
corresponde con la generación en profundidad de
todos los estados posibles del problema. Para evitar
generar todos estos estados se utiliza una función de
poda (pruning function) que identifica aquellos nodos
que no conducen a una solución admisible sin
necesidad de generar el sub-árbol correspondiente. El
algoritmo finaliza cuando se alcanza un nodo Πi,j de
profundidad n, que representa una solución, o cuando
no es posible expandir ningún nodo, lo que supone
que el problema no tiene solución y por lo tanto no
existe una planificación cíclica factible para el
conjunto de tareas.
2.4
COMPLEJIDAD DEL PROBLEMA
El espacio de soluciones está constituido por todas y
cada una de las maneras de incluir las n tareas en la
planificación, la cual esta acotada por la siguiente
ecuación [7]:
 ncs 
(ncs !)n
=


∏
Π ni =1nei × (ncs − nei )!
i =1  nei 
n
(8)
De donde se deduce que la complejidad del problema
aumenta con el número de tareas y con el número de
ciclos secundarios. Por lo tanto, si existen varios
valores de m que verifiquen las ecuaciones (2), (3),
(4) y (5), se deben elegir primero los mayores valores
para intentar encontrar una planificación admisible.
2.5
OPTIMIZACIÓN EN LA BUSQUEDA DE
UNA PLANIFICACIÓN FACTIBLE
En el algoritmo desarrollado, se eligen las tareas
según el orden que establece la primera regla,
haciendo uso de las otras dos cuando existan tareas
con un mismo plazo de respuesta. Estos criterios
permiten seleccionar primero a las tareas con menor
posibilidad o que tienen mayor dificultad para ser
incluidas en la planificación. Así, a partir de estos
criterios se consigue llegar a soluciones de forma
más rápida que si se elige una tarea de forma
arbitraria.
Una vez elegida una tarea τi, hay que incluir sus nei
ejecuciones en los planes secundarios. En el caso
general, para cada ejecución τij existirá más de un
ciclo secundario donde pueda incluirse. El problema
de añadir tareas a una planificación parcial se puede
asimilar al problema de empaquetar bultos (bin
packing) [8].
Para elegir un ciclo secundario, donde incluir la
ejecución τij se aplican las siguientes reglas
heurísticas que se utilizan en el problema de
empaquetar bultos:
1. Incluir la tarea en el primer ciclo secundario, que
verifique sus requisitos temporales, en el qué
quede un tiempo de cómputo mayor o igual al
tiempo máximo de cómputo de la tarea. Esto
equivale a empaquetar el bulto en la primera caja
en la que quepa (first fit).
En el peor de los casos se debe recorrer
exhaustivamente el árbol del espacio de soluciones
para encontrar una planificación admisible para el
conjunto de las n tareas, o bien, para asegurar que no
existe, pero la complejidad del espacio de soluciones
(9) es grande. Existen diferentes métodos que pueden
ser usados para construir planificadores cíclicos [4],
tales como búsqueda heurística, evolución estocástica
y algoritmos genéticos. Específicamente, nos hemos
basado en la utilización de algunas reglas heurísticas
que facilitan, en la mayoría de los casos, la obtención
de soluciones con una menor complejidad.
2. Incluir la tarea en el último ciclo secundario en el
que quepa y se garanticen sus requisitos
temporales. Esto equivale a empaquetar el bulto
en la última caja en la que quepa (last fit).
Las reglas utilizadas deben permitir elegir la mejor
opción a la hora de expandir un nodo con alguno de
sus sucesores, de forma que se pueda esperar
razonablemente llegar por este camino a un nodo de
profundidad n, generando un menor número de nodos
del árbol y, por lo tanto, reduciendo, en la mayoría de
los casos, la complejidad del problema.
Estas reglas consiguen un empaquetado que no usa
más de (11/9)xN+4 cajas, siendo N el mínimo
numero de cajas necesarias, que en nuestro caso
representa el numero de ciclos secundarios.
3. Encajar la tarea en el ciclo secundario en el que
quede menor tiempo de cómputo libre y se
garanticen los requisitos temporales. Esto
equivale a empaquetar el bulto en la caja que
tenga la menor capacidad libre y esta sea mayor
o igual a la que necesita el bulto (best fit).
2.6
En nuestro caso, los criterios seleccionados para
elegir la tarea a incluir son:
1. Añadir la tarea con el plazo de ejecución más corto
entre los restantes.
2. Añadir la tarea con el período más corto entre los
que restan por planificar.
3. Añadir la tarea con el mayor tiempo de cómputo
entre los que restan por planificar.
ALGORITMO
La figura 1 se muestra el diagrama de flujo del
algoritmo en el que se basa CICLIC para determinar
y simular planificadores cíclicos.
Este algoritmo esta compuesto por varios procesos.
El primero de ellos, basado en las especificaciones
temporales del conjunto de tareas, se encarga de
verificar
las
condiciones
suficientes
de
planificabilidad (fig1:B), a través de las reglas dadas
en la sección 2.1. Posteriormente, si se cumplen las
modificada a través de interfaces graficas con el
usuario (GUI). El usuario puede asignar a cada tarea
un color, para posteriormente determinar fácilmente
y verificar la ocurrencia de eventos relevantes, medir
intervalos de tiempo y verificar rápidamente el
cumplimiento de restricciones temporales. Después
de leer las características de las tareas del sistema, se
pueden emplear utilidades de análisis y simulación.
CICLIC muestra a través de diferentes ventanas:
Conjunto de tareas,
Análisis de planificación,
Código C de la planificación encontrada
Simulación de planificación.
De esta manera, CICLIC permite reducir el impacto
de actualizaciones y/o modificaciones de las tareas,
facilitando su realización.
3.1 ESPECIFICACIÓN DE LAS TAREAS
Figura 1: Diagrama flujo del algoritmo de la
herramienta CICLIC
condiciones se determinan el ciclo principal y los
ciclos secundarios de la planificación (fig1:C). A
continuación se ordena el conjunto de tareas en base
a las reglas heurísticas enunciadas en la sección 2.5
y se determinan los marcos o ejecuciones para
completar cada tarea (fig1:D). Luego se intenta
encontrar una planificación admisible, insertando
ejecuciones de tareas en los ciclos secundarios de
forma que se cumplan los requisitos temporales
(fig1:E).
La
planificación
se
construye
recursivamente (fig1:F), hasta encontrar una
planificación cíclica factible (fig1:G), o hasta que no
es posible insertar el conjunto completo de tareas, lo
que supone que el problema no tiene solución
(fig1:H).
Los usuarios deben especificar los atributos de cada
tarea. Los atributos de las tareas son: el periodo de la
tarea (T), el plazo de la tarea (D), el tiempo de
ejecución estimado de la tarea (C) y el nombre o
descripción de la tarea.
3.2 ANALISIS DE PLANIFICABILIDAD
CICLIC verifica las condiciones suficientes de
planificabilidad para planificadores cíclicos (sección
2.1) y determina el factor de utilización de la CPU. Si
no existe ningún valor que verifique el conjunto de
condiciones, entonces el conjunto de tareas no puede
ser planificado a través un planificador cíclico.
3.3 CODIGO C
CICLIC genera el conjunto de instrucciones en
código C correspondientes a la planificación
encontrada.
3.4 VENTANAS GUIS Y SALIDAS
3
HERRAMIENTA CICLIC
CICLIC es una herramienta Java para el diseño y
desarrollo de planificadores cíclicos de sistemas de
tiempo real sobre un procesador, el cual provee
facilidades de análisis y simulación. Así, CICLIC
permite establecer planificaciones cíclicas, que
pueden ser implementadas posteriormente sobre
cualquier procesador y sistema operativo de tiempo
real.
Los usuarios de CICLIC especifican las tareas del
sistema. Todas las especificaciones son leídas desde
los archivos de especificaciones proveídas por el
usuario y compiladas en una representación interna.
Estas descripción puede ser fácilmente vista y
La interfaz grafica con el usuario de CICLIC permite,
a través de diferentes ventanas:
1.
Que los usuarios puedan introducir, ver,
modificar y almacenar la descripción del
conjunto de tareas.
2.
Realizar y mostrar el análisis de planificabilidad.
3.
Mostrar la carga en la CPU.
4.
Producir y mostrar las simulaciones de la
planificación cíclica factible en caso de que
exista.
Ejemplos de estas ventanas se muestran en la figuras
2, 3 y 4.
Figura 2: Interfaz gráfica de Ciclic
4
CASO DE ESTUDIO
En esta sección se muestra el uso de CICLIC en el
proceso de análisis y diseño de planificadores
cíclicos en sistemas de tiempo real. El primer sistema
en estudio corresponde a Volvo Construction
Equipment (VCE) [17]. VCE se ha basado
tradicionalmente en planificadores estáticos. Esto se
debe principalmente a la naturaleza critica de sus
sistemas de control en su maquinaria pesada
(camiones, transporte articulado, excavadoras, etc.).
Nos basaremos en una versión simplificada de uno de
los sistemas construidos por VCE [12],
específicamente se considera el conjunto de tareas
que se muestran en la tabla 1.
Tarea
A
B
C
D
E
Ti
10
20
50
50
100
Ci
2
2
1
6
8
Di
10
10
10
50
100
específico. Las franjas blancas indican tiempo libre
de CPU. El comienzo y fin de cada ciclo secundario
viene indicado por la aparición y desaparición de un
recuadro negro en la parte superior de la simulación.
El segundo sistema en estudio corresponde a una
simplificación de un sistema de control de
automóviles, cuyo conjunto de tareas que se
muestran en la tabla 2.
Tarea
A: medidor de velocidad
B: control ABS
C: inyección de combustible
Ti
20
40
80
Ci
4
10
16
Di
20
40
80
Tabla 2: Conjunto de tareas de un sistema control de
un automóvil.
La figura 4, muestra la simulación del planificador
cíclico encontrado.
Tabla 1: Conjunto de tareas sistema VCE.
La figura 2 muestra la interfaz gráfica de CICLIC,
donde se muestra el conjunto de tareas y los
resultados del análisis de planificabilidad, duración
del ciclo principal y ciclo secundario, y factor de
utilización de CPU.
La figura 3 muestra la simulación del planificador
cíclico encontrado, en donde se puede observar
claramente el comienzo y la finalización de ejecución
de cada tarea. Cada tarea tiene asociado un color
0
10
20
30
40
50
60
70
80
90
100
Figura 3: Planificador cíclico del conjunto de tareas
del sistema VCE (M=100, m=10)
Eng. Practice, vol. 3, no. 2, pp. 151-162, 1995.
[5] The Cheddar project: A free real time scheduling
analyzer,
http://beru.univbrest.fr/~singhoff/cheddar/
8
0
90
60
10
Figura 4: Planificador cíclico del conjunto de tareas
del sistema de control de un automóvil (M=80,
m=20)
5
CONCLUSIONES
TRABAJOS
Y
FUTUROS
En este trabajo se presenta la herramienta CICLIC,
que sirve de apoyo en el análisis, diseño y desarrollo
de planificadores cíclicos de sistemas de tiempo real
con un procesador.
Una de las principales características de CICLIC es
el uso complementario de componentes analíticos y
de simulación de la herramienta durante el proceso
de diseño. En primer lugar CICLIC verifica si se
cumplen
las
condiciones
suficientes
de
planificabilidad del conjunto de tareas, para luego
determinar la planificación y la simulación de las
mismas. CICLIC se basa en planificadores de ciclo
secundario y en algoritmos de búsqueda heurística
para obtener una planificación factible.
Nuestro trabajo futuro incluye extender la
herramienta para tratar conjuntos de tareas con
relaciones de precedencia e introducir y evaluar
nuevas reglas heurísticas que permitan aumentar la
eficacia de la herramienta.
Agradecimientos
Esta investigación recibe soporte del Ministerio de
Ciencia y Tecnología, mediante el proyecto de
referencia DPI2002-01621.
Referencias
[1] T. P. Baker and A. Shaw. The Cyclic Executive
Model and Ada Real Time Systems 1(1), 1989.
[2] G. Buttazzo. Hard Real-Time Computer Systems.
Predictable
Scheduling
Algorithms
and
Applications. Kluwer Academic Publishers, 1997.
[3] J. Blumenthal, F. Golatowski, J. Hildebrandt, and
D. Timmermann. Framework for validation and
Analysis of Real time Scheduling Algorithms and
scheduler implementations. University of Rostock,
Technical report available from http://yasa.etechnik.uni-rostock.de/, 2003.
[4] A. Burns N. Hayes and M.F. Richardson,
“Generating Feasible Cyclic Schedules,” Control
70
[6] S. Devroey, J. Goossens, and C. Hernalsteen. A
generic simulator of real-time scheduling
algorithms, pp. 242–249. Proceedings of the 29th
Annual Simulation Symposium, New Orleans,
Louisiana, April 1996.
[7] J. Flores Zamorano, “Planificación Estática de
Procesos en Sistemas de Tiempo Real Crítico”,
Tesis Ph. D., Universidad Politécnica de Madrid,
1995.
[8] M. R. Garey and D. Johnson Computers and
Intractability. A Guide to the Theory of NPCompleteness Freeman, 1979.
[9] M. G. Harbour, J. G. García, J. P. Gutierrez, and J.
D. Moyano. MAST: Modeling and Analysis Suite
for Real Time Applications, pp. 125–134. Proc. of
the 13th Euromicro Conference on Real-Time
Systems, Netherlands, June 2001.
[10] M. H. Klein, T. Ralya, B. Pollak, R. Obenza, and
M. G. Harbour. A Practitioner’s Handbook for
Real Time Analysis. Kluwer Academic Publishers,
1994.
[11] C. L. Liu and J. W. Layland, “Scheduling
Algorithms for Multiprogramming in a Hard RealTime Environment,” Journal of ACM, Vol. 20, No.
1, pp. 46-61, 1973.
[12] J. Mäki-Turja, K. Hänninen, M. Nolin. Efficient
Development of Real-Time Systems Using Hybrid
Scheduling, International conference on Embedded
Systems and Applications (ESA), June, 2005
[13] SEI. The Rate Monotonic Analysis. Technical
report, In the Software Technology Roadmap.
http://www.sei.cmu.edu/str/descriptions/rma
body.html, September 2003.
[14] TimeSys. Using TimeWiz to Understand System
Timing before you Build or Buy. White paper,
http://www.timesys.com/index.cfm?bdy=home
bdylibrary.cfm, 2002.
[15] Tri-Pacific. Rapid-RMA: The Art of Modeling
Real-Time
Systems.
http://www.tripac.com/html/prod-fact-rrm.html,
2003.
[16] J. A. Stankovic Misconceptions about real-time
programming IEEE Computer. Octubre 1988
[17] Volvo
Construction
http://www.volvoce.com.
Equipment.
[18] J. Yépez, P. Martí and J. M. Fuertes. “Control
Loop Scheduling Paradigm in Distributed Control
Systems.” 29th Annual Conference of the IEEE
Industrial
Electronics
Society (IECON03),
Roanoke, USA, November, 2003.

Documentos relacionados