Title: J. Garc
1SISTEMAS DE TIEMPO REALDiseño de Sistemas de
Tiempo Real. HRT-HOOD
2INDICE
- INTRODUCCIÓN
- VISIÓN GENERAL DE HRT-HOOD
- DISEÑO DE LA ARQUITECTURA LÓGICA
- DISEÑO DE LA ARQUITECTURA FÍSICA
- TRADUCCIÓN A LENGUAJE ADA
3INTRODUCCIÓN
- Qué es HRT-HOOD?
- HOOD
- Hierarchical Object Oriented Design
- Soportado por ESA (European Space Agency)
- HRT-HOOD
- Hard Real Time HOOD
- Diseñado como parte de un proyecto ESA (European
Space Agency) - El sistema se diseña como un conjunto de objetos
abstractos - Descomposición jerárquica de los objetos
- Se asocia una serie de atributos de tiempo real a
cada objeto - Introduce restricciones en la descomposición para
permitir un análisis temporal al final del diseño
(prioridades fijas o EDS) -
4INTRODUCCIÓN
- Diseño Orientado a Objetos
- Abstracción, ocultación de información y
encapsulado - Un objeto se define por los servicios que ofrece
- Se ocultan los detalles internos
- Descomposición Jerárquica
- Un objeto padre se puede descomponer en objetos
hijo -
- Estructura el Control
- Las operaciones en los objetos se activan
mediante flujos de control (threads) - Puede haber varios threads operando
simultáneamente en un objeto
5VISIÓN GENERAL DE HRT-HOOD
- Características que debe tener el método
- Reconocer los tipos de actividades/objetos
propios de los STR - (actividades cíclicas, esporádicas etc.)
- Integración de paradigmas de planificación con el
proceso de diseño - Definición de requisitos temporales de los
objetos - Definición de los requisitos de fiabilidad de
cada objeto - Definición de la importancia relativa de cada
objeto en el sistema - Soporte a diferentes modos de operación
- Definición de objetos para el control de recursos
- Descomposición que facilite la ubicación en
procesadores - Descomposición que facilite el análisis de
planificabilidad
6VISIÓN GENERAL DE HRT-HOOD
- Ciclo de vida clásico para desarrollo software
- Etapas en secuencia
- Cada etapa comienza al terminar la anterior
- Pruebas al final de realización
- Detección de errores tardía
- (ojo errores de requisitos temporales)
- Vuelta atrás costosa
7VISIÓN GENERAL DE HRT-HOOD
- Obligaciones, compromisos y restricciones
- Obligaciones
- Propiedades que se desarrollarán en próximos
niveles de diseño - Compromisos
- Propiedades que no se podrán cambiar en próximos
- niveles de diseño
- Restricciones
- Recursos Velocidad CPU, Ancho de Banda etc.
- Mecanismos Prioridad interrupciones, política
planificación etc. -
- Proceso de refinamiento del diseño
- Va transformando obligaciones en compromisos
8VISIÓN GENERAL DE HRT-HOOD
9DISEÑO DE LA ARQUITECTURA LÓGICA
- Representación de un objeto
-
-
T Nombre_del_Objeto
T Hijo-1
Datos-2
Operacion
Datos-1
Operacion-1 Operacion-2
T Hijo-2
Operacion
10DISEÑO DE LA ARQUITECTURA LÓGICA
- Tipos de objetos
- Pasivos
- Objetos que no tienen control cuando se invocan
sus operaciones - No invocan operaciones de otros objetos
espontáneamente - Protegidos
- Pueden tener control cuando invocan una de sus
operaciones (exclusión mutua) - No invocan operaciones de otros objetos
espontáneamente - Influyen en el tiempo de bloqueo de los procesos
que le invocan - Activos
- Pueden tener control cuando invocan una de sus
operaciones - Pueden invocar espontáneamente operaciones de
otros objetos - Objetos de tipo general que no tiene
restricciones - Siempre se descompone en objetos hijos
11DISEÑO DE LA ARQUITECTURA LÓGICA
- Tipos de objetos
-
- Cíclicos
- Representan actividades periódicas
- Pueden invocar espontáneamente operaciones de
otros objetos - Solo ofrecen operaciones que requieran una
atención inmediata (ATC) - Esporádicos
- Representan actividades esporádicas
- Pueden invocar espontáneamente operaciones de
otros objetos - Solo ofrecen una operación para ser invocada por
otros objetos (Start) - y una o mas operaciones que requieran atención
inmediata (ATC)
12DISEÑO DE LA ARQUITECTURA LÓGICA
- Proceso de refinamiento de diseño
-
- Comienzo
- Uno o varios objetos Activos y algún Pasivo
- Proceso de descomposición
- Aparecen más objetos Activos y Pasivos
- Aparecen objetos Cíclicos, Esporádicos y
Protegidos - Nivel terminal de refinamiento
- Solo contiene Pasivos Protegidos
Cíclicos Esporádicos
13DISEÑO DE LA ARQUITECTURA LÓGICA
- Proceso de refinamiento de diseño
-
-
A Sistema
A Subsistema-1
C Tarea-1
Dispositovo2
Operación-11
Datos-1
Datos-3
Dispositovo3
Pa Objeto-1
A Subsistema-2
Dispositovo1
Operación-O11 Operación-O12
Operación-21 Operación-22
14DISEÑO DE LA ARQUITECTURA LÓGICA
- Proceso de refinamiento de diseño
-
-
A Subsistema-2
S Tarea-2
C Tarea-3
Start
Datos-1
Datos-21
Datos-22
Pr Objeto-2
Operación-21 Operación-22
Operación-O21 Operación-O22
15DISEÑO DE LA ARQUITECTURA LÓGICA
- Proceso de refinamiento de diseño
-
- Un objeto Cíclico o Esporádico terminal contiene
un solo thread (tarea) que se planifica en tiempo
de ejecución - Un objeto Protegido proporciona datos compartidos
por tareas cíclicas y/o esporádicas, ofreciendo
exclusión mutua - Un objeto Pasivo es un objeto accedido por un
solo thread (tarea), o bien, por varios sin que
puedan existir problemas de accesos concurrentes
indebidos
16DISEÑO DE LA ARQUITECTURA LÓGICA
- Reglas de descomposición jerárquica
-
-
17DISEÑO DE LA ARQUITECTURA LÓGICA
18DISEÑO DE LA ARQUITECTURA FÍSICA
- Objetivos
-
- Trasladar el diseño lógico a los recursos físicos
del entorno de ejecución - Asegurar cumplimiento de requisitos no
funcionales - Necesitamos
- Diseño que facilite el análisis
- Medio para predecir el comportamiento del diseño
en la plataforma (hw, kernel) - Ejemplo
- Compatibilidad del diseño HRT-HOOD con el
análisis de prioridades estáticas y políticas
expulsoras
19DISEÑO DE LA ARQUITECTURA FÍSICA
- Actividades
-
- Asignación de objetos a procesadores
- Por ejemplo, ubicar los objetos que controlan
dispositivos en los nodos donde residan los
controladores de dichos dispositivos - Planificación de las comunicaciones
- Planificar la red de comunicaciones para limitar
los retardos de los mensajes - Planificación de procesadores
- Determinar la planificación que asegura el
cumplimiento de plazos de los objetos - Estudio de fiabilidad
- Decidir si se utiliza tolerancia a fallos
hardware, réplica de objetos
20DISEÑO DE LA ARQUITECTURA FÍSICA
- Atributos de tiempo real de los objetos
- Deadline
- Cada objeto cíclico o esporádico puede tener
definido un plazo para su ejecución -
- Operation_WCET
- Cualquier operación visible desde otro objeto
debe tener definido su tiempo de ejecución para
el caso peor - Operation_Budget
- Cualquier operación visible desde otro objeto
puede tener definido un límite de ejecución. Si
se sobrepasa dicho límite se ejecuta un
tratamiento de error definido en el objeto. (WCET
Tiempo límite tratamiento de errores) - Thread_WCET (Peor caso de tiempo de ejecución de
tareas C y S) - Thread_Budget (Límite de ejecución de tareas C y
S)
21DISEÑO DE LA ARQUITECTURA FÍSICA
- Atributos de tiempo real de los objetos
-
- Period
- Cada objeto cíclico tiene definido su periodo de
ejecución - Offset
- Tiempo que un thread cíclico debe esperar antes
de empezar su operación -
- Minimun_Arrival_Time
- Cada tarea esporádica debe tener definido su
tiempo mínimo entre llegadas - Precedence_Constraints
- Un thread puede tener restricciones de
precedencia asociadas a su ejecución -
22DISEÑO DE LA ARQUITECTURA FÍSICA
- Atributos de tiempo real de los objetos
-
- Priority
- Cada tarea cíclica y esporádica puede tener
definida su prioridad de acuerdo con la teoría de
planificación que se sigue - Execution_Transformation
- Un objeto cíclico o esporádico puede necesitar
ser transformado en tiempo de ejecución para
incorporar retardos extras. Por ejemplo, para
modificar su periodo - Importance
- Los objetos cíclicos y esporádicos pueden tener
definida la importancia de sus threads dentro del
sistema(por ejemplo, hard o soft)
23DISEÑO DE LA ARQUITECTURA FÍSICA
- Resultados
-
- Cada objeto tiene definidos sus atributos
- Análisis del sistema
24TRADUCCIÓN A LENGUAJE ADA
- Cada objeto HRT-HOOD se transforma en un paquete
ADA95 -
- with Otro
- Package Objeto is
- ...
- Procedure Op1
- Procedure Op2
- ...
- end Objeto
-
- with Otro
- Package body Objeto is
- ...
- Procedure Op1 is
- ...
- Procedure Op2 is
T Objeto
Op1 Op2
Datos-1
25TRADUCCIÓN A LENGUAJE ADA
- Objeto Activo Paquete con paquetes hijos
-
- with Otro
- Package Padre is -- ACTIVO
- ...
- Procedure Op1
- Procedure Op2
- ...
- end Padre
- private Package Padre.Hijo_A is
- ...
- Procedure OP_A1(...)
- end Padre.Hijo_A
- private Package Padre.Hijo_B is
- ...
- Procedure OP_B1(...)
A Padre
A Hijo_A
Op_A1
Op1 Op2
Datos-1
A Hijo_B
Op_B1 Op_B2
26TRADUCCIÓN A LENGUAJE ADA
- Objeto Cíclico Paquete con Tarea Periódica
-
- Package Objeto_C_1 is -- CICLICO
- ...
- end Objeto_C_1
- with B
- Package body Objeto_C_1 is -- CICLICO
- ...
- task Periodica is
- pragma_priority (Prioridad)
- end periodica
- ...
- task body Periodica is
- begin
- loop
- ...
C Objeto_C_1
Datos-1
27TRADUCCIÓN A LENGUAJE ADA
-
- Objeto Esporádico Paquete con Tarea Esporádica
y Rut_Interrup. -
- Package Objeto_S_1 is -- ESPORADICO
- ...
- protected Interrup is
pragma priority (Prioridad) - procedure Rut_Tratamto
- entry Esperar
- private
- ...
- end Interrup
- ...
- end Objeto_2
- with C
- Package body Objeto_S_1 is -- ESPORADICO
- protected body Interrup is
- ...
- end Interrup
S Objeto_S_1
Datos-1
28TRADUCCIÓN A LENGUAJE ADA
- Objeto Protegido Paquete con Objeto Protegido
- Package Objeto_Pr is -- PROTEGIDO
- ...
- protected Nombre_Obj is
- pragma priority (Techo_Prioridad)
- procedure Operacion_O21
- procedure Operacion_O22
- private
- ...
- Dato Tipo_Dato Valor_Inicial
- procedure Proc_Privado(...)
- end Nombre_Obj
- ...
- end Objeto_Pr
-
- Package Objeto_Pr is -- PROTEGIDO
Pr Objeto-Pr
Operacion-O21 Operacion-O22