Академический Документы
Профессиональный Документы
Культура Документы
Objetivos
Repasaremos algunos conceptos de ingeniera de software y su aplicacin a sistemas de tiempo real Introduciremos brevemente el mtodo HRT-HOOD Analizaremos los lenguajes de programacin y sistemas operativos ms adecuados para realizar sistemas de tiempo real
Motivacin
Los mtodos y herramientas que se usan para construir otros tipos de sistemas no sirven para el software de tiempo real
no son suficientemente fiables slo contemplan el tiempo de respuesta medio, no el peor no se garantizan los requisitos temporales
Niveles de abstraccin
Los mtodos de diseo de software comprenden una serie de transformaciones desde los requisitos iniciales hasta el cdigo ejecutable Normalmente se consideran distintos niveles de abstraccin en la descripcin de un sistema:
Especificacin de requisitos Diseo arquitectnico Diseo detallado Codificacin Pruebas
Cuanto ms precisa sea la notacin empleada en cada nivel mejor ser la calidad del sistema final
abstraccin
anlisis
pruebas de sistema pruebas de integracin diseo detallado realizacin tiempo pruebas de unidades
diseo arquitectnico
Caractersticas
Se descompone en una secuencia de etapas
Hay que completar cada etapa antes de empezar la siguiente
HRT-HOOD
HRT-HOOD
Hard Real-Time Hierarchical Object-Oriented Design desarrollado por Burns & Wellings en1994
Es un mtodo de diseo estructurado, basado en objetos, para sistemas de tiempo real estricto
derivado de HOOD (Hierarchical Object-Oriented Design) estndar en la Agencia Europea del Espacio (ESA)
Principios
abstraccin descomposicin jerrquica ocultamiento de informacin anlisis temporal
Diseo de la arquitectura lgica Diseo de la arquitectura fsica y anlisis temporal Diseo detallado Codificacin y clculo de tiempos de ejecucin Pruebas y medida de tiempos
Restricciones
Restricciones
Caractersticas
Elementos en cada nivel de abstraccin
Compromisos: propiedades que ya no se cambiarn Obligaciones que se dejan para niveles inferiores
UML
UML
Unified Modeling Language desarrollado por Booch, Rumbaugh y Jacobson
Elementos de HRT-HOOD
Un sistema se disea como una jerarqua de objetos abstractos
un objeto se caracteriza por sus operaciones y su comportamiento (abstraccin y ocultamiento de informacin) cada objeto se puede descomponer en otros de ms bajo nivel modelo de objetos simple, sin herencia
apropiado para sistemas de tiempo real
Objetos y relaciones
El objeto parent contiene los objetos child_1 y child_2
datos
T
T
parent
child_1
op1 op2
op
excepcin T
uncle parent usa uncle child_1 usa child_2 y uncle child_1.op implementa parent.op1 child_2.op implementa parent.op2
child_2
op
Tipos de objetos
Pasivos
no controlan cundo se ejecutan sus operaciones no invocan operaciones de otros objetos espontneamente
Protegidos
pueden controlar cundo se ejecutan sus operaciones no invocan operaciones de otros objetos espontneamente
Activos
pueden controlar cundo se ejecutan sus operaciones pueden invocar operaciones de otros objetos espontneamente
Cclicos
sus operaciones se ejecutan a intervalos regulares
Espordicos
sus operaciones se ejecutan cuando ocurre un suceso externo o interno
Lenguajes de programacin
Un lenguaje de programacin de sistemas de tiempo real debe facilitar la realizacin de sistemas
concurrentes, fiables, con un comportamiento temporal analizable
C
Es un lenguaje muy utilizado para programacin de sistemas Es un lenguaje
estructurado, con bloques sin tipado fuerte muy flexible (pero a veces poco seguro)
Ada
Es un lenguaje diseado especficamente para sistemas de tiempo real empotrados
concurrencia tiempo real acceso al hardware e interrupciones
Ada 95
Es la versin actual normalizada de Ada La norma define
un ncleo comn para todas las implementaciones (core language) unos anexos especializados para
programacin de sistemas sistemas de tiempo real sistemas distribuidos sistemas de informacin clculo numrico fiabilidad y seguridad
Java
Es un lenguaje pensado para construir sistemas distribuidos
basado en objetos dinmicos con concurrencia integrada en el lenguaje bibliotecas de clases (APIs) muy tiles pensado para que el cdigo objeto sea porttil
interpretado por una mquina virtual (JVM) write once, run everywhere
Sistemas operativos
Los sistemas operativos convencionales no son adecuados para realizar sistemas de tiempo real
no tienen un comportamiento determinista no permiten garantizar los tiempos de respuesta algunos de ellos son poco fiables
Hardware
Hardware
Aplicacin convencional
Sistema empotrado
programa de aplicacin ncleo de ejecucin (run-time system) sistema operativo de tiempo real hardware
aplicaciones convencionales programa de aplicacin ncleo de ejecucin (run-time system) hardware SO convencional
POSIX
Es un conjunto de normas IEEE/ISO que definen interfaces de sistemas operativos Permiten desarrollar software porttil y reutilizable (Portable Operating System Interface) Las normas definen servicios que se pueden incluir o no en un sistema operativo particular Adems se definen perfiles de aplicacin con conjuntos de servicios estndar Hay interfaces para C, Ada, y otros lenguajes
Normas POSIX
POSIX 1, 1a POSIX 1b,1d,1j POSIX 1c POSIX 1e POSIX 1f POSIX 1g POSIX 1h POSIX 5,5a,5b POSIX 13 POSIX 21 Interfaz bsica similar a UNIX Extensiones de tiempo real Procesos ligeros (threads) Seguridad NFS Servicios de red (sockets, XTI) Tolerancia de fallos Interfaces para Ada Perfiles para sistemas de tiempo real Comunicaciones de tiempo real
Perfiles de aplicacin
Definen subconjuntos de servicios para distintos tipos de aplicaciones POSIX 13 : Perfiles para sistemas de tiempo real
PSE50 : sistema de tiempo real mnimo
sin gestin de memoria, ficheros ni terminal slo threads (no procesos pesados)
Ejemplos de SOTR
LynxOS pSOS QNX VRTX VxWorks RTEMS RT-Linux Marte Universidad de Cantabria
perfil POSIX PSE50 para sistemas empotrados en PCx86
Resumen
Los mtodos y herramientas convencionales no son adecuados para desarrollar sistemas de tiempo real HRT-HOOD es un mtodo de diseo bien adaptado a este tipo de sistemas En el curso usaremos algunos lenguajes de programacin para ilustrar los conceptos ms importantes de los STR
C / POSIX Ada 95 RT Java