MASTER EN COMPUTACIÓN
UNIVERSIDAD
DE CANTABRIA
Sistemas Distribuidos de Tiempo Real
Apuntes: TEMA 7
Por:
J. Javier Gutiérrez
[email protected]
http://www.ctr.unican.es/
Grupo de Computadores y Tiempo Real, Universidad de Cantabria
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
1
Sistemas distribuidos de tiempo real
UNIVERSIDAD
DE CANTABRIA
PARTE III: Middlewares de distribución
• TEMA 5. Middleware de distribución para el modelo Ada
• TEMA 6. Middleware de distribución esquizofrénico para
lenguaje Ada: CORBA y DSA
• TEMA 7. Middlewares de distribución de tiempo real
2
UNIVERSIDAD
DE CANTABRIA
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
Introducción
Esquema de desarrollo de sistemas distribuidos
Modelo de Sistema Distribuido
Código del
Prototipo
Código de
Emulación
Prototipo Ejecutable
Prototipo de Sistema Distribuido
Descripción del Sistema
Configuración del Sistema
Modelado del Sistema
Herramienta de
Generación de Código
Código de
la Aplicación
Herramienta
de Análisis
Código Ejecutable
de la Aplicación
Tiempos de
Respuesta
• integrar diseño, implementación y análisis
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
3
Introducción (cont.)
Se necesita una plataforma distribuida de tiempo real:
• Sistema operativo de tiempo real: MaRTE OS
• Redes de tiempo real: RT-EP o bus CAN
• Middleware de tiempo real:
- RT-GLADE: modificación de GLADE con optimización de las
características de tiempo real
- PolyORB: mejorado en el tratamiento de las llamadas remotas
UNIVERSIDAD
DE CANTABRIA
Aplicaciones que se pueden abordar principalmente:
• sistemas empotrados con un pequeño número de procesadores
y redes (heterogéneos)
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
4
Introducción (cont.)
Herramientas de modelado y análisis de planificabilidad:
• MAST (Modeling and Analysis Suite for Real Time Applications):
- modelo del sistema, técnicas de análisis (prioridades fijas y EDF) y
UNIVERSIDAD
DE CANTABRIA
asignación de prioridades
• Modelo de tiempo real para UML analizable por MAST
• Emulador que opera sobre el modelo de MAST (tiempos
promedio y contraste de resultados del análisis)
Planificación flexible:
• QoS y tiempo real tratados simultáneamente en un sistema
basado en contratos y con planificación jerárquica
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
5
Recordatorio de GLADE
Detalles de la implementación desde el punto de vista del tiempo
real:
• Linux sobre TCP/IP
• pool de tareas configurable por cada partición para la ejecución
UNIVERSIDAD
DE CANTABRIA
de peticiones remotas
• creación dinámica de tareas conectoras de las peticiones en la
partición llamada
- Acceptor Task --> Connector Task --> Tarea del pool
• políticas de prioridades para las tareas del pool:
- Client Propagated (ejecución remota a la prioridad del cliente)
- Server Declared (todas las tareas del pool a la misma prioridad)
• elección arbitraria de una red de entre las disponibles
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
6
Recordatorio del esquema de RPC en
GLADE
UNIVERSIDAD
DE CANTABRIA
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
7
Importancia de las asignaciones de
prioridades en tiempo real
Ejemplo con Task_1 y Task_2 con requisitos temporales D=T
UNIVERSIDAD
DE CANTABRIA
CPU1
CPU1
Task_1 C= 0.24
Task_1 C= 0.24
Task_1 C= 0.24
T=1.0
T=1.0
T=1.0
ROP_2 : C=0.44
ROP_2 : C=0.44
Task_3 C= 0.0002
Task_3 C= 0.0002
Task_3 C= 0.0002
T=10.0
T=10.0
T=10.0
ROP_4 : C=0.03
ROP_4 : C=0.03
Task_5 C= 0.0001
Task_5 C= 0.0001
Task_5 C= 0.0001
T=0.002
T=0.002
T=0.002
CPU2
CPU2
ROP_1 : C=0.34
ROP_1 : C=0.34
Task_2 C= 0.16
Task_2 C= 0.16
Task_2 C= 0.16
T=1.2
T=1.2
T=1.2
ROP_3 : C=1.0
ROP_3 : C=1.0
Task_4 C= 0.0001
Task_4 C= 0.0001
Task_4 C= 0.0001
T=0.2
T=0.2
T=0.2
ROP_5 : C=0.004
ROP_5 : C=0.004
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
Importancia de las asignaciones de
prioridades en tiempo real (cont.)
Evaluación en GLADE/Linux:
8
UNIVERSIDAD
DE CANTABRIA
High
Priority
Policy
Client
Propagated
Server
Declared
Task_2
Prio.
ROP_2
Prio.
Task_1
Prio.
Task_1
ROP_1
WCRT (s)
Prio.
D = 1.0
D = 1.0
High Medium Medium 1.389
1.293
Medium Medium High
High Media High Medium 1.526
High Medium Medium 1.523
High
1.440
Medium Medium High
High
High
Task_2
WCRT (s)
D = 1.2
D = 1.2
1.496
1.416
1.336
1.337
1.394
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
9
Importancia de las asignaciones de
prioridades en tiempo real (cont.)
Evaluación en RT-GLADE/MaRTE OS
UNIVERSIDAD
DE CANTABRIA
Priority
Priority
Policy
Policy
MAST
MAST
(network no priorit.)
(network no priorit.)
Client
Client
Propagated
Propagated
Server
Server
Declared
Declared
ROP_1
ROP_1
Prio.
Prio.
Task_2
Task_2
Prio.
Prio.
ROP_2
ROP_2
Prio.
Prio.
Task_1
Task_1
Task_1
Task_1
WCRT (s)
WCRT (s)
Prio.
Prio.
D = 1.0
D = 1.0
D = 1.0
D = 1.0
High Medium High Medium 0.806
High Medium High Medium 0.806
High Medium Medium 0.638
High Medium Medium 0.638
High
High
High No Acot.
High No Acot.
Medium Medium High
Medium Medium High
High Medium High Medium 1.538
High Medium High Medium 1.538
High Medium Medium 2.148
High Medium Medium 2.148
High
High
High No Acot.
High No Acot.
Medium Medium High
Medium Medium High
Task_2
Task_2
WCRT (s)
WCRT (s)
D = 1.2
D = 1.2
D = 1.2
D = 1.2
0.898
0.898
1.527
1.527
0.653
0.653
1.149
1.149
2.887
2.887
0.655
0.655
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
10
Introducción a RT-GLADE
Modificación de GLADE que sigue conforme al estándar Ada:
• priorización de las tareas manejadoras de RPCs y de los
UNIVERSIDAD
DE CANTABRIA
mensajes enviados por la red
• incorporación de las redes RT con particionamiento del mensaje
en paquetes
• eliminación de la incertidumbre en la selección de una red de
entre las varias posibles
• eliminación de la creación dinámica de tareas en la recepción de
una RPC
• adaptación de la configuración del sistema incluyendo aspectos
de las redes de tiempo real
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
11
Esquema de RPC en RT-GLADE
UNIVERSIDAD
DE CANTABRIA
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
12
UNIVERSIDAD
DE CANTABRIA
Asignación de prioridades en
RT-GLADE
with System.Garlic.Priorities;
use System.Garlic.Priorities;
package RPC_Priorities is
procedure Set (RPC_Handler : in Global_Priority);
procedure Set (RPC_Handler,
Outgoing_Message : in Global_Priority);
procedure Set (RPC_Handler,
Outgoing_Message,
Incoming_Message : in Global_Priority);
procedure Get (RPC_Handler,
Outgoing_Message,
Incoming_Message : out Global_Priority);
end RPC_Priorities;
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
Ejemplo de uso de la asignación de
prioridades
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
Ejemplo de uso de la asignación de
prioridades (cont.)
13
UNIVERSIDAD
DE CANTABRIA
14
UNIVERSIDAD
DE CANTABRIA
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
15
Ejemplo de uso de la asignación de
prioridades (cont.)
UNIVERSIDAD
DE CANTABRIA
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
16
Configuración en RT-GLADE
La carga de las particiones se realiza manualmente
Con el atributo Self_Location se configuran los enlaces entre
particiones (Partition Links):
• alternativa a los canales que establece una conexión
unidireccional entre particiones y sirve para fijar la red que se
utiliza y no los filtros (que no se usan)
UNIVERSIDAD
DE CANTABRIA
El atributo Task_Pool se usa siempre con una configuración
estática (los tres valores iguales) para evitar la creación y
destrucción dinámica de tareas
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
17
Configuración en RT-GLADE (cont.)
El atributo Priority establece la prioridad inicial del Accept
Handler:
• esto permite asignarle una prioridad inferior a la de las tareas de
comunicaciones y superior a cualquiera de la aplicación
UNIVERSIDAD
DE CANTABRIA
• en GLADE este atributo se añadió para fijar la prioridad de todas
las tareas manejadoras de RPC dentro de una misma partición
El nuevo atributo Max_RPC_Replies establece el número máximo
de llamadas RPCs simultáneas desde una partición:
• fija el número de entries del objeto protegido en el que las tareas
que han realizado una RPC esperan su respuesta
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
18
Ejemplo de configuración de
RT-GLADE
configuration Configuration_File is
pragma Starter (None);
Partition1: partition := (Calculator);
Partition2: partition := (Remote_Caller);
Partition3: partition;
procedure Remote_Caller is in Partition2;
procedure Local_Caller;
for Partition3’Main use Local_Caller;
pragma Boot_Location (("RT_EP", "CPU1:1"));
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
4/abr/13
Ejemplo de configuración de
RT-GLADE (cont.)
UNIVERSIDAD
DE CANTABRIA
19
UNIVERSIDAD
DE CANTABRIA
for Partition1’Self_Location use
((("rt_ep"," CPU2:1"),("Local", "CPU2:1:Partition3")));
for Partition2’Self_Location use ("rt_ep", "CPU1:1");
for Partition3’Self_Location use
((("rt_ep"," CPU2:3"),("Local", "CPU2:3:Partition1")));
for Partition1’Priority use 27;
for Partition1’
Comentarios de: MASTER EN COMPUTACIÓN - Sistemas Distribuidos de Tiempo Real - Apuntes: TEMA 7. Middlewares de distribución de tiempo real (0)
No hay comentarios