Está en la página 1de 30

dit

UPM

Diseo de sistemas
de tiempo real
Juan Antonio de la Puente
DIT/UPM

Transparencias basadas en el captulo 2 del libro de A. Burns y A. Wellings Real-Time Systems and Programming Languuages, 3 edicin (2001)

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

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

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

 Las plataformas de desarrollo y ejecucin suelen ser


diferentes

es difcil hacer pruebas en la plataforma de ejecucin


es difcil medir los tiempos con precisin

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

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

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

abstraccin

Ciclo de desarrollo secuencial

pruebas de
sistema

anlisis

diseo
arquitectnico

pruebas de
integracin
diseo
detallado

pruebas de
unidades
realizacin
tiempo

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

Caractersticas

 Se descompone en una secuencia de etapas


Hay que completar cada etapa antes de empezar la siguiente

 Las pruebas se llevan a cabo despus de la realizacin


Muchos errores se encuentran slo al final
Volver atrs es muy costoso
A veces se hace sin documentar y de forma poco rigurosa

 Es mejor utilizar un proceso iterativo

Veremos uno centrado en la etapa de diseo


Se trata de validar todos los aspectos que se pueda en la etapa de
diseo del sistema
Prestaremos especial atencin a la validacin del comportamiento
temporal

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

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

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

Proceso de desarrollo iterativo


Definicin de requisitos

Diseo de la arquitectura lgica


Diseo de la arquitectura fsica
y anlisis temporal

Restricciones

Diseo detallado
Codificacin
y clculo de tiempos de ejecucin

Restricciones

Pruebas
y medida de tiempos

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

Caractersticas

 Elementos en cada nivel de abstraccin


Compromisos: propiedades que ya no se cambiarn
Obligaciones que se dejan para niveles inferiores

 En el diseo se van transformando las obligaciones en


compromisos

Este proceso est sujeto a restricciones impuestas por el entorno


de ejecucin

 Dos niveles de diseo arquitectnico


Modelo lgico - compromisos independientes del entorno
Modelo fsico - compromisos dependientes del entorno

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

UML

 UML
Unified Modeling Language
desarrollado por Booch, Rumbaugh y Jacobson

 Notacin basada en objetos con diversos aspectos

clases y objetos
casos de uso
comportamiento
paquetes
estructura del software
estructura fsica

 UML es un lenguaje, no un mtodo


 Se estn desarrollando variantes para STR
STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

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

 Se puede analizar el comportamiento temporal si el


entorno de ejecucin es conocido y predecible

los objetos tienen atributos temporales


las relaciones entre objetos estn restringidas para asegurar que
el diseo se puede analizar

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

10

Objetos y relaciones

op1

El objeto parent contiene


los objetos child_1 y child_2

parent

child_1

datos

uncle

op

op2

excepcin
T

op

STRL - Diseo de sistemas -24/09/2001

child_2

parent usa uncle


child_1 usa child_2 y uncle
child_1.op implementa parent.op1
child_2.op implementa parent.op2

2001 Juan Antonio de la Puente

11

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
STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

12

Diseo de sistemas y lenguajes de


programacin

 El diseo debe tener en cuenta lo que se puede hacer en


los niveles de abstraccin inferiores

 Los lenguajes de programacin proporcionan la notacin


bsica para la realizacin de los diseos

 La eleccin de un lenguaje es importante desde el punto


de vista de la eficiencia y la fiabilidad del sistema

tambin tiene que ver con la productividad de la programacin


un programa se escribe una vez, pero se lee y se modifica muchas
durante las etapas de mantenimiento
la vida til de los sistemas empotrados puede ser muy larga
STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

13

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

 Hay varias clases de lenguajes de inters para STR:


Lenguajes ensambladores
flexibles y eficientes, pero costosos y poco fiables

Lenguajes secuenciales (Fortran, Pascal, C, C++)


necesitan un SO para concurrencia y tiempo real

Lenguajes concurrentes (Modula, Ada, Java, ...)


concurrencia y tiempo real incluidos en el lenguaje

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

14

 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)

 No tiene integrada la concurrencia ni el tiempo real


se consigue invocando servicios del sistema operativo de forma
explcita

 No facilita la descomposicin en mdulos ni la


programacin con objetos
se puede hacer con C++
extensin de C para programar con objetos
no se suele usar en STR por problemas de fiabilidad

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

15

Ada

 Es un lenguaje diseado especficamente para


sistemas de tiempo real empotrados
concurrencia
tiempo real
acceso al hardware e interrupciones

 Es un lenguaje descendiente de Pascal


estructura en bloques
fuertemente tipado

 Est pensado para construir sistemas grandes y


cambiantes

paquetes (mdulos) y esquemas genricos


extensin de tipos con herencia
biblioteca jerrquica
interfaces normalizadas con otros lenguajes (C, Fortran)

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

16

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

Los anexos definen


paquetes de biblioteca
mecanismos de implementacin

No aaden sintaxis ni vocabulario al lenguaje

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

17

Perfiles para sistemas crticos

 El documento Guide for the use of the Ada programming


language in high-integrity systems define subconjuntos
seguros de Ada para aplicaciones crticas

 SPARK es un subconjunto / extensin de Ada que


permite el uso de tcnicas de anlisis esttico

 El perfil de Ravenscar define un subconjunto seguro de


la parte concurrente de Ada, y los correspondientes
servicios de sistema operativo

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

18

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

 La definicin original no es adecuada para tiempo real

la planificacin de actividades concurrentes no est bien definida


los mecanismos de sincronizacin son inadecuados
la gestin dinmica de memoria introduce indeterminismo
la medida del tiempo no es suficientemente precisa
otros problemas con excepciones y concurrencia

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

19

Java para tiempo real

 Hay varias propuestas de modificaciones para usar Java


en sistemas de tiempo real

NIST Requirements for Real-Time Extensions to Java (1999)


no modificar la sintaxis, coexistencia con aplicaciones convencionales

Java Real-time Experts Group (Sun & otros)


Real-Time Specification for Java (2000)
basada en un mquina virtual extendida para STR

Real-Time Java Working Group (J-Consortium)


Real-Time Core Specification
basada en una mquina virtual separada para STR

 Todava no hay compiladores ni mquinas virtuales para


Java de tiempo real

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

20

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

 Un sistema operativo de tiempo real (SOTR) debe soportar


concurrencia: procesos ligeros (threads) con memoria comn
temporizacin: medida de tiempos y ejecucin peridica
planificacin determinista
ej.: prioridades fijas con desalojo

dispositivos de E/S: acceso a recursos de hardware e


interrupciones

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

21

Arquitectura de software y SO (1)

Sistema operativo

Programa de aplicacin
con componentes de
sistema operativo

Hardware

Hardware

Aplicacin convencional

Sistema empotrado

Programas de usuario

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

22

Arquitectura de software (2)

programa de aplicacin
ncleo de ejecucin
(run-time system)
sistema operativo
de tiempo real
hardware

Arquitectura con sistema operativo de tiempo real

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

23

Arquitectura de software (3)

programa de aplicacin
ncleo de ejecucin
(run-time system)

aplicaciones
convencionales

programa de
tiempo real

SO
convencional

RTS

ncleo de tiempo real

hardware
hardware

Arquitectura con
mquina desnuda

STRL - Diseo de sistemas -24/09/2001

Arquitectura con
mquina virtual

2001 Juan Antonio de la Puente

24

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

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

25

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

STRL - Diseo de sistemas -24/09/2001

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

2001 Juan Antonio de la Puente

26

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)

PSE51 : controlador de tiempo real


tiene sistema de ficheros y terminal

PSE52 : sistema de tiempo real dedicado


tiene gestin de memoria y procesos pesados

PSE53 : sistema de tiempo real generalizado


sistema completo con todo tipo de servicios

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

27

Ejemplos de SOTR

 LynxOS
 pSOS
 QNX
 VRTX
 VxWorks
 RTEMS
 RT-Linux
 Marte Universidad de Cantabria
perfil POSIX PSE50
para sistemas empotrados en PCx86

 Open Ravenscar Kernel (ORK) DIT/UPM


ncleo de SOTR para Ada / Ravenscar
STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

28

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

STRL - Diseo de sistemas -24/09/2001

2001 Juan Antonio de la Puente

29

También podría gustarte