Sistemas de Tiempo Real Multitarea/Multiprocesadores Integrados

Transcripción

Sistemas de Tiempo Real Multitarea/Multiprocesadores Integrados
Sistemas de Tiempo Real Multitarea/Multiprocesadores Integrados:
Diagramación con Precedencias Duras
Rodrigo Santos
Dep. Ing. Eléctrica y Comp.
Universidad Nacional del Sur
CONICET
{[email protected]}
Ariel Fernandez
Dep. Electrónica-FRBB
Universidad Tecnológica Nacional
{[email protected]}
Jorge Santos
Dep. Ing. Eléctrica y Comp.
Universidad Nacional del Sur
{[email protected]}
Abstract
En este trabajo se presenta un algoritmo para la diagramación de tareas en tiempo real sobre sistemas multiprocesador. A diferencia de otros esquemas, en este caso los procesadores son heterogeneos y se encuentran integrados en
un mismo dispositivo por lo que no hay retardos impuestos por comunicaciones entre tareas que operan en distintos
procesadores. El esquema propuesto permite diagramar sistemas con un alto factor de utilización. En el trabajo se
presenta una evaluación experimental y se compara la performance del algoritmo contra otras soluciones presentes en la
bilbiografía.
1. Introducción
En la actualidad, se ha incrementado de manera importante la utilización de sistemas embebidos para el control de
dispositivos. Las principales razones para ello se encuentran en la reducción de costos en el hardware y el alto nivel de
integración que se ha alcanzado. La aparición de microcontroladores con capacidades de conversión de señales analógicas
a digitales y digitales a análogicas, comunicación via un puerto serie, implementación de Modulación por Ancho de Pulso
(Pulse Width Modulation, PWM), etc., hace de estos integrados una herramienta eficaz para el control de sistemas.
El aumento de las aplicaciones que se controlan mediante sistemas embebidos impulsa a la industria a producir nuevos
circuitos integrados con mayor cantidad de funciones incorporadas de modo de satisfacer los requerimientos en un solo
integrado. La utilización de Arreglos Programables de Compuertas (Field Programmable Gate Arrays, FPGA) permite
incrementar las funciones prácticamente a medida del diseñador del sistema. Sin embargo, esta tecnología está limitada
en ciertos aspectos como pueden ser el costo del sistema por unidad, la velocidad de operación, el consumo de energía,
la cantidad de pines externos necesarios para montar el sistema, etc. En los microcontroladores tradicionales se puede
recurrir al uso de memorias caches, mayor cantidad de niveles de pipeline o simplemente aumento de la velocidad de
procesamiento para lograr una mayor performance del sistema. Sin embargo, estas alternativas tienen algunos inconvenientes cuando son utilizadas en sistemas embebidos que deben operar en tiempo real: por una parte el manejo de la
memoria cache o los niveles de pipeline suelen ocasionar dificultades en el cálculo del peor tiempo de ejecución; por otra
parte, el incremento de la velocidad de procesamiento está asociado a un mayor consumo del circuito integrado que obliga
a redimensionar la fuente de alimentación.
La utilización de procesadores con arquitecturas del tipo Palabras de Instrucción Muy Largas (Very Large Instruction
Word, VLIW), que realizan procesamiento en paralelo mediante varias unidades aritmético lógicas, utilización de memoria de datos y de programa, requiere integrados grandes y de código de programación generalmente más extenso que el de
los procesadores normales.
En otro nivel de integración, aparecen dispositivos con varios procesadores integrados de modo de satisfacer demandas
específicas. A menudo, estas demandas consisten en la ejecución de sistemas de tareas de tiempo real, en los cuales los
resultados deben ser correctos no sólo desde un punto de vista aritmético-lógico, sino producirse antes de un cierto instante
denominado vencimiento. Un sistema de m tareas queda completamente especificado como
!#"$"#"%
& ' . En cada terna, , ,
denotan respectivamente el tiempo de ejecución, el periodo y el vencimiento de la
) .
tarea i, simbolizada ( . En muchas aplicaciones
Un sistema se dice diagramable cuando no se pierde ningún vencimiento. La diagramación puede ejecutarse con distintas disciplinas de prioridades, por ejemplo: Períodos Monotónicos Crecientes (Rate Montonic, RM), Menor Tiempo al
Vencimiento (Earliest Deadline First, EDF), Vencimientos Monotónicos Crecientes (Deadline Monotonic, DM), aplicable
* .
cuando
Para este tipo de aplicaciones es común la integración de microporcesadores de propósito general (General Purpose
Processor, GPP) con microprocesadores auxiliares de propósito dedicado, por ejemplo Procesadores de Señales Digitales
(Digital Signals Processors, DSP). Estas arquitecturas buscan beneficiarse con el paralelismo proveniente de la utilización
de dos procesadores en simultáneo. Las tareas que conforman la aplicación tienen entonces diferentes subtareas que corren en el procesador principal o en el procesador auxiliar. Esta estructura genera subtareas con relaciones de precedencia
duras entre la subtarea predecesora y su sucesora, con lo cual todas las subtareas deben finalizar antes del vencimiento de
la tarea. Ejemplos de estas arquitecturas en la actualidad se pueden encontrar en el sistema Janus, desarrollado por ST
Microelectronics en conjunto con Parades [10], para el control de marcha de motores de combustión interna en vehículos. Otras companías han desarrollado dispositivos similares destinados a aplicaciones más generales como pueden ser
transmisión de video o audio. Por ejemplo Texas Instruments, desarrolló el SMJ320C80 con un Computador de Conjunto
Reducido de Instrucciones (Reduced Instruction Set Computer, RISC) de 32 bits como GPP y 4 DSPs paralelos, también
de 32 bits, todos acoplados internamente sobre un canal que provee acceso a una memoria RAM compartida [2, 3].
Dadas las características de las tareas que corren sobre los DSP, el modo natural de ejecutarlas es sin apropiaciones,
en el sentido de que cuando una tarea comienza su ejecución, no puede ser desalojada del procesador por otra tarea. Esto
produce una diagramación asimétrica, ya que en el GPP las tareas son apropiables y en el DSP no. En la bibliografia
hay varios análisis al respecto. Por ejemplo, en [4, 5] Rajkumar aborda este problema mediante dos algoritmos, Protocolo
Techo de Prioridades Múltiples (Multiple Priority Ceiling Protocol, MPCP) y Protocolo Techo de Prioridades Distribuidas
(Distributed Priority Ceiling Protocol, DPCP) que permiten compartir recursos en sistemas genéricos multiprocesador.
Esta aproximación es muy pesimista ya que se basa en principios muy generales que no toman en cuenta las características
particulares de cada sistema.
Otra aproximación denominada co-diagramación se presenta en [6]. Alli, varias tareas comparten múltiples recursos
de procesamiento. La idea básica consiste en dividir las tareas en partes y asignarles vencimientos individuales tales
que hagan al sistema diagramable. En el trabajo original el esquema era utilizado para diagramar al procesador y la
controladora de disco.
Con este esquema, el análisis de la diagramabilidad puede realizarse considerando el tiempo de ejecución en el DSP
como una zona crítica de la tarea principal que corre en el GPP. En [1], los autores mejoran el análisis de Rajkumar y
establecen un tiempo de bloqueo para cada tarea siguiendo un ordenamiento RM. El test de diagramabilidad utiliza la cota
hiperbólica [7]. En lo que sigue este método será denominado GAB (Gai, Abeni, Butazzo).
En el presente trabajo se plantea un modelo de análisis similar al de la co-diagramación. Básicamente cada tarea
es analizada como un proceso en el cual hay subtareas que se ejecutan en distintos procesadores. Se ajustan entonces
vencimientos y tiempos de activación de cada subtarea de modo que el sistema sea coherente. La diagramación en el GPP
se hace por EDF y en el DSP por DM.
El resto del trabajo se organiza de la siguiente manera: en la Sección 2 se presenta el modelo del sistema y en la 3
se analizan algunas de las soluciones previas. En la Sección 4 se formaliza el algoritmo propuesto y en la Seccion 5 se
evalúa, mediante simulaciones, la performance respecto de la propuesta realizada en [1]. Finalmente en la última sección
se sacan las conclusiones y se plantean trabajos futuros.
2. Modelo del sistema
Se considera una arquitectura en la cual un GPP y un DSP se encuentran integrados en un mismo chip y comparten
las memorias RAM y ROM, como así también el espacio de entrada/salida. Una arquitectura comercial de características
similares se presenta en Janus [10].
Las comunicaciones entre las dos unidades de procesamiento no imponen un retardo adicional ya que están integradas
en el mismo chip. Debido a que la ejecución de tareas en el DSP es no apropiable, podría ocurrir que una tarea debiera
esperar por su uso. Las tareas que se ejecutan en el DSP son invocadas desde el procesador principal mediante un
paradigma de Llamada a Procedimiento Remoto (Remote Procedure Call, RPC). El kernel de tiempo real en el procesador
principal es el encargado de impedir que una tarea realice un RPC cuando el DSP está ocupado respondiendo a otro.
Las tareas se consideran periódicas e independientes. Cada una de ellas puede ser dividida en tres subtareas ordenadas
por relaciones de precedencia, de las cuales la primera y la tercera se ejecutan en el GPP y la segunda en el DSP. En
general, entonces, se puede describir al sistema a partir de un conjunto con tuplas ordenadas.
+
,&.-/ &1023&546'7 3
&98 indica el peor tiempo de ejecución de la subtarea j de la tarea i. En este caso, j puede tomar únicamente los valores
:50;=< ,
1, 2, ó 3. Cualquiera de las subtareas puede tener tiempo de ejecución igual a cero. En el caso particular en que
se dice que la tarea es regular porque no realiza ningún RPC al DSP y podrá ejecutarse de principio a fin sin ser bloqueada.
10?> < , se dice que es una tarea DSP.
Si
Los factores de utilización del GPP, y del DSP se calculan como:
@ACBDB FG E &J- KL M14
5HI-
@NOB PG E & 1 0
5HQ-
En la figura 1, se muestra la arquitectura del sistema y las relaciones de precedencia de las mismas. En el grafo,
los nodos indican las subtareas, notadas
precedencia.
( 98
(subtarea j de la tarea i), mientras que los arcos simbolizan la relación de
Fig.1
3. Trabajos previos
En la evolución temporal del sistema, cuando una tarea accede al DSP y comienza a ejecutarse, libera el GPP abriendo
la posibilidad de que una tarea regular u otra tarea DSP comience o continue su ejecución. Sin embargo, la asignación
de ese tiempo de procesador resulta dificultosa porque al haber relaciones de precedencia y un multiprocesamiento, disciplinas como RM o EDF no siempre producen la mejor diagramación del sistema.
El sistema tal cual es planteado en este trabajo puede ser analizado como un caso particular del modelo general expuesto
por Rajkumar en [4, 5]. En este caso, el test de diagramabilidad debería satisfacer:
R I #"$"#"S
UT'K 84 KV 8 0 K .- KV 1 4 KL 10 KVX -Z '[ G 83- V
W 8
' Y
8 HI-
X: simboliza el mayor tiempo de bloqueo que puede sufrir ( l '
acbed j80/&K G
_
8!m 80 nWopeorqtsDocu7opevjowwx
X ]\^ fSghf#i
:
fSgSkfSi
<
nto6peowqWsDoyu7o6pevjo]pev$z,qt{o6p
^`
donde
y se calcula de la siguiente manera:
Esta aproximación tiene el inconveniente de que el tiempo de ejecución del DSP es contado para todas las tareas, aún
para aquéllas que no hacen uso del DSP.
En [1], se mejora esta propuesta al considerar dos colas de tareas, una para las tareas regulares y otra para las tareas
de DSP. Los pedidos de uso del DSP se implementan mediante una primitiva de bloqueo que suspende la tarea que hace
el requerimiento y la coloca en una cola de espera para ser reactivada cuando el DSP quede libre. De esa manera, las
tareas regulares pueden ejecutarse siempre que estén listas y tengan la prioridad suficiente como para apropiarse del GPP
sin que importe si el DSP está siendo usado por una tarea de mayor o menor prioridad. De esta manera, las tareas que
utilizan el DSP son bloqueadas únicamente por otras tareas que también lo usan. Por lo tanto, al determinar el bloqueo
que debe tolerar una tarea, hay que tener en cuenta la duración máxima de la tarea de DSP de menor prioridad y además
X|
la interferencia que puedan provocar las
l tareas de mayor prioridad que utilicen también el DSP. De este modo, será:
10 K c
a bed j 10 &K G
W8!m 80 nWopeorqtsDocu7opev}o~wx
X:]_ \^
fSg h!f#i
fSg k!f#i
<
nto6peowqWsDo?u7opevjo]pev$zq{Uop
^`
Determinado el tiempo de bloqueo se puede verificar la diagramabilidad a partir del test tradicional de Liu y Layland
[8], o por medio de la cota hiperbólica [7], o por los métodos exáctos [Lehozcky, Santos], que son más costoso en tiempo.
Esta aproximación mejora mucho la capacidad de decisión sobre la factibilidad de los sistemas y en caso de utilizar la
cota hiperbólica permite decidir sobre un mayor número de sistemas en tiempo O(n). La utilización del método exacto
resulta costosa si se debe realizar el test en linea. Si en cambio puede ejecutarse fuera de línea, como es el caso de sistemas
completamente definidos en su inicialización, sus resultados son mejores que los producidos por los otros métodos.
Dado que el bloqueo del DSP sólo se considera sobre las tareas que hacen uso del mismo, el algoritmo tiene una mejor
performance que el DPCP con una complejidad computacional similar.
4. El Algoritmo Propuesto
El modelo divide a cada tarea en tres subtareas ordenadas por relaciones de precedencia. Por ello se reasignan
vencimientos y tiempos de activación a cada subtarea a fin de poder analizarlas y diagramarlas en forma individual,
 %
como si se tratara de tareas independientes. El primer paso consiste entonces en transformar el conjunto
( ,
€
M

J
;
‚
5
|
0
‚
5
j
4
3
€
ƒ
8
9
8
en el conjunto
hay que definir para cada ( un vencimiento „ y un tiempo de
(
(
( . En
}p 98 , de modo que se cumpla:
p =p J-:* „ J - Y p 50r* „ 50 Y p 14?* „ 1 4 … Y activación
Se dice entonces que el sistema es coherente. La primera y tercera subtareas se ejecutan en el GPP mientras que la
segunda en el DSP. Por lo tanto, habrá dos sistemas diferentes, uno en cada procesador, por lo que hay que analizar la
diagramabilidad de cada uno por separado. El GPP se diagramará con EDF y el DSP con DM. Al igual que en GAB, una
tarea DSP se bloquea y pasa a una cola de espera si no tiene acceso al DSP. Cuando la tarea que se está ejecutando en el
DSP concluye, activa a la tarea de mayor prioridad (vencimiento relativo menor) que se encuentra presente en la cola de
espera. Como no es apropiable, hay que acotar el tiempo que una tarea de prioridad alta puede permanecer en la cola de
espera aguardando que una tarea de menor prioridad libere al DSP.
Para establecer la diagramabilidad del DSP se utiliza el siguiente teorema:
U†‡ˆ7'6
‰ !#"$"#"% de tareas periódicas, independientes y no apropiTeorema 1: Un sistema
TD- l u
G
‰ Š menor u#‹ uŒ K HCac
j &K
8 W 8!m
 5ŽQbe-dƒƒƒƒ ‘ 
8 HQ-
ables es diagramable por DM si y sólo si:
R I !#"$"#"
La demostración puede encontrarse en http://www.ingelec.uns.edu.ar/rts.
Para poder aplicar el teorema y asi determinar la factibilidad del DSP es necesario establecer para cada subtarea un
vencimiento adecuado. Dado que en el GPP las tareas se ejecutan por EDF, el momento más tardío en que puede terminar
la subtarea que corre en el DSP y aún dejar tiempo suficiente para la tercera subtarea es:
[
„ 50:= &54
(1)
Determinados los vencimientos de todas las subtareas que se ejecutan en el DSP, se las ordena por DM y se realiza
el test de diagramabilidad de acuerdo al Teorema 1. Si el DSP resulta diagramable entonces se puede seguir analizando
la factibilidad del GPP. Para ello se utiliza un resultado demostrado formalmente en [9] que establece las condiciones
suficientes para la diagramabilidad de un sistema operando bajo EDF cuando las tareas tienen vencimientos y tiempos de
activación no sincrónicos con los períodos: S(m) es diagramable bajo EDF si
R“’ $"#"$"S , R ‰ $"#"$"#
,|
p} Y p 8 , „ Y „ 8 ,
ˆ˜ Y „ 8 [ }p ”•j–” i  — $• – — g
G
La aplicación del resultado anterior a las subtareas del GPP permite determinar la factibilidad del sistema. Para ello
hay que determinar tanto los tiempos de activación de las subtareas,
54
y„ .
peJ- y p$14 , como así también los sus vencimientos, „ J-
El vencimiento de la tercer subtarea es sencillo de determinar y coincide con el de la tarea general. Para calcular el
vencimiento de la primer subtarea, hay que determinar el instante más tardío en el que puede comenzar a ejecutarse la
segunda subtarea. El mismo surge de la condición de diagramabilidad para cada una de las subtareas del DSP:
R I !#"#"$"S™
TDl
„ J-+ „ 10 [ šv}sD›jp&u#‹ u=&10&K CH 5aŽQ-b/ƒd ƒƒƒ j  0e&K G 80 u 8!m

8QH E
(2)
A cada subtarea se le asigna el tiempo más temprano de activación que puede tener. En el caso de la primera subtarea,
coincide con la activación de la tarea general. Para el resto se calcula siguiendo el siguiente esquema:
R Q #"$"#"S
R“’ Œ“ œ
p$98p$98ST'-&KV&98ST'-
(3)
Establecidos entonces los valores de los tiempos de activación y de los vencimientos parciales podemos considerar un
nuevo sistema en el cual las tareas son independientes y tienen esos tiempos de activación con esos vencimientos.
ž
p}3& Ÿ3 I #"$"#"n
‚
Teorema 2: Sea
(
„
, y un ordenamiento parcial en S. Sea
#"$"#"nC un conjunto de tareas independientes tales que, para todo Y Y n , ¡ ¢& , y „
&¡+‡ ( ¡ p2¡ r ¡ „ ¡ ¡ y p2¡ están dados por las
fórmulas (1), (2) y (3), S es diagramable si y sólo si S* es diagramable.
La demostración formal del teorema puede encontrarse en http://www.ingelec.uns.edu.ar/rts
En consecuencia, sólo queda establecer la condición suficiente de diagramabilidad.
=¢ ( p 3 „ + #"$"#"nC , y ‚ un ordenamiento parcial en S. Para todo
Corolario 1: Sea
Y Y n , „ ¡ y p2 ¡
R!’ $"#"$"SUn , R ˆ $"#"$"SUn , tales que ,p ¡ Y p28 ¡ , „ ¡ Y „ 8 ¡ , se
dados por las fórmulas (1), (2) y (3), S es diagramable si
verifica:
G
˜ Y „8 [ p
”•}–”7i  — •$– — g
El Teorema 1 y el Corolario 1 dan las condiciones suficientes de diagramabilidad para el sistema que estamos anal-
izando. La complejidad del cálculo para determinar la diagramabilidad en el DSP es £
p es la cantidad de tareas que quedan luego de la transformación.
U~ . En el GPP es £ ¤nt , donde
E
5. Evaluación experimental
Para validar el método se realizaron dos grupos diferentes de simulaciones. Ellos son: en el primero se repitieron las
condiciones establecidas en [1] aunque manteniendo el número de tareas en 10:
¥
Los períodos de las tareas se eligieron aleatoriamente entre 10 y 1000.
¥
Los tiempos de ejecución de las tareas fueron elegidos de modo tal que el factor de utilización total del sistema,
GPP+DSP variara entre 0.01 y 0.99.
¥
¥
Las tareas que utilizan el DSP son en promedio el 80% del número total de tareas.
¥
El tiempo de ejecución de la tarea en el DSP se calculó de modo que variara entre el 10% y el 80% del tiempo de
ejecución total.
Se determina el porcentaje de sistemas diagramables referido al total de sistemas ensayados en la simulación.
Con estas condiciones se generaron
<¦
sistemas que fueron evaluados mediante el método GAB por un lado, y con el
método propuesto en el presente trabajo por el otro. Se midió luego la diferencia entre los porcentajes de los sistemas
diagramables por uno y otro método. La figura 2 representa los resultados de este experimento.
NOB
ACBDB
Fig. 2 U
yU
indican el factor de utilización del DSP y del GPP respectivamente. En abcisas se representa su
suma y en ordenadas la diferencia entre los porcentajes de sistemas diagramables por cada uno de los métodos.
En la figura se observa claramente que hasta un factor de utilización total de 0.3, los dos métodos brindan resultados
similares. Entre 0.3 y 0.75, los sistemas son diagramados mejor con el método GAB y cuando el factor de utilización total
es mayor que 0.75, con el método propuesto en este trabajo.
Los resultados anteriores sin embargo, se obtienen en condiciones de simulación bastante restrictivas. De hecho con
dos procesadores, se puede esperar un factor de utilización total bastante mayor que 1. Se realizó entonces un segundo
conjunto de simulaciones. En ellas, se varió el factor de utilización del GPP entre 0.01 y 0.99 y para cada uno de los
puntos anteriores se varió el factor de utilización del DSP entre 0.01 y 0.99. Para cada par de factores de utilización, se
generaron 100 sistemas aleatorios con períodos comprendidos entre 10 y 1000. En la figura 3, se graficó, para cada par,
la diferencia en los porcentajes de los sistemas que resultaron diagramables por cada uno de los métodos.
Fig. 3 En el eje vertical se representa la diferencia entre los porcentajes de sistemas diagramables (%método
propuesto-%método GAB).
Se puede apreciar que cuando el factor de utilización del GPP es cercano a 1 y el factor de utilización del DSP cercano
a 0, el número de sistemas que resultan diagramables por medio del método propuesto aqui es sustancialmente mayor.
Sin embargo, a medida que el factor de utilización del DSP aumenta y supera 0.5, la diferencia entre las dos propuestas
se hace muy pequeña.
6. Conclusiones
En este trabajo se presentó un nuevo algoritmo destinado a la diagramación de sistemas multiprocesadores heterogéneos integrados en un solo dispositivo. Uno de los procesadores es de propósito general (GPP) y el otro de propósito
dedicado, por ejemplo un procesador de señales digitales (DSP). Las tareas se analizan con relaciones de precedencia
operando bajo dos disciplinas de prioridades diferentes: EDF y DM para el GPP y el DSP respectivamente. Las simulaciones muestran que para determinadas combinaciones de factores de utilización de los dos procesadores el método
presentado aqui es mejor que el propuesto en [1] (GAB) y en otros casos tienen una performance parecida. Por ejemplo,
cuando el factor de utilización en el GPP es elevado y en el DSP es bajo, el método supera al GAB. Esto es natural ya
que con EDF se pueden diagramar sistemas que con prioridades fijas no. A medida que el factor del utilización del DSP
aumenta no hay diferencia entre los métodos ya que en la mayor parte de los casos los sistemas con tan elevados factores
de utilización no resultan factibles. Al descender la utilización del GPP se puede elevar mas la utilización del DSP. En
estos casos nuevamente el método propuesto tiene una mejor performance. Finalmente con bajos factores de utilización
del GPP los dos métodos encuentran factibles los mismos sistemas, por lo que no hay diferencias.
Es por ello, que al momento del diseño del sistema y de realizar el análisis de factibilidad, será preciso evaluar la
demanda real sobre los dos procesadores. En caso de que la misma sea baja será mejor implementar la disciplina RM en
ambos procesadores. Si en cambio, el GPP tiene un factor de utilización elevado, será mejor el manejo mediante EDF con
relaciones de precedencia.
En el futuro se evaluará la factibilidad de este algoritmo en el caso de que haya varios procesadores y que las tareas
deban ejecutar diferentes funciones en cada uno de ellos.
Agradecimiento: Los autores agradecen a un revisor anónimo importantes observaciones que contribuyeron a mejorar la
presentación del trabajo.
References
[1] Gai, P., L. Abeni, G. Butazzo, “Multiprocessor DSP Scheduling in System-on-a-chip Architectures”, Proc. 14th
Euromicro Conference on Real Time Systems, pp. 231-238, Viena, 2002.
[2] Texas Instruments,
“Military semiconductor products fact sheet SM320C80/SMJ20C80/5962-9679101
SGYV006C”, Agosto 2000.
[3] K. K. P. Research, “Increasing functionality in set-top boxes”, Proc. IIC-Korea, Seul, 2001.
[4] Rajkumar, R., L. Sha, J. P. Lehoczky, “Real time synchronization protocols for multiprocessors”, Proc. IEEE Real
Time Systems Symposium, 1988.
[5] Rajkumar, R. “Synchronization in Real Time Systems: A priority inheritance approach”, Kluwer Academic Publishers, 1991.
[6] Saewong, S., R. Rajkumar, “Cooperative scheduling of multiple resources”, Proc. IEEE Real-Time Systems Symposium, Diciembre 1999.
[7] Bini, E., G. Buttazzo, G. Buttazzo, “A hyperbolic bound for the rate monotonic algorithm”, Proc. 13th Euromicro
Conference on Real-Time Systems, junio, 2001.
[8] C. L. Liu & J. W. Layland, Scheduling Algorithms for Multiprogramming in a Hard Real-Time Environment, Journal
ACM, 20 (1), 1973, 46-61.
[9] Chetto, H., M. Silly-Chetto, T. Bouchentouf, “Dynamic scheduling of real-time tasks under precedence constraints”,
The Journal of Real-Time Systems, 2, 181-194, 1990.
[10] Ferrari, A., S. Garue, M. Peri, S. Pezzini, L. Valsecchi, F. Andreatta, W. Nesci, “The design and implementation of
a dual-core platform for power-train systems”, Convergence 2000, Detroit, Octubre 2000.

Documentos relacionados