Está en la página 1de 11

dit

UPM

Tecnologa de software para sistemas de tiempo real


Juan Antonio de la Puente DIT/UPM

Motivacin
Las herramientas y la tecnologa de software que se usan para construir otros tipos de sistemas no sirven para el software de tiempo real
Juan Antonio de la Puente 2005

no son suficientemente fiables slo contemplan el tiempo de respuesta medio, no el peor no 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

18/09/2005

Tecnologa de los sistemas de tiempo real

Arquitectura de sistemas

aplicacin
Juan Antonio de la Puente 2005

lenguaje de programacin mquina simblica mquina operativa mquina convencional llamadas al sistema + lenguaje de mquina lenguaje de mquina

18/09/2005

Tecnologa de los sistemas de tiempo real

Desarrollo cruzado

fuentes

compilador

objetos

montador

Juan Antonio de la Puente 2005

RTS lib depurador

RTS lib simulador ejecutable

Plataforma de desarrollo

Plataforma de ejecucin

RMON

programa cargado

18/09/2005

Tecnologa de los sistemas de tiempo real

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

Juan Antonio de la Puente 2005

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


18/09/2005 Tecnologa de los sistemas de tiempo real 4

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

Juan Antonio de la Puente 2005

18/09/2005

Tecnologa de los sistemas de tiempo real

Normas POSIX

Juan Antonio de la Puente 2005

POSIX 1, 1a POSIX 1b,1d,1j POSIX 1c POSIX 5,5a,5b POSIX 13 POSIX 21

Interfaz bsica similar a UNIX Extensiones de tiempo real Procesos ligeros (threads) Interfaces para Ada Perfiles para sistemas de tiempo real Comunicaciones de tiempo real

18/09/2005

Tecnologa de los sistemas de tiempo real

POSIX para sistemas de tiempo real


Servicios de tiempo real (POSIX 1b, 1d, 1j)
Relojes precisos y temporizadores Seales de tiempo real Planificacin por prioridades Semforos Colas de mensajes Memoria compartida Fijacin de pginas en memoria fsica

Juan Antonio de la Puente 2005

Servicios de hebras (threads) (POSIX 1c)


Hebras Mutex y variables de condicin

18/09/2005

Tecnologa de los sistemas 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)

Juan Antonio de la Puente 2005

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

18/09/2005

Tecnologa de los sistemas de tiempo real

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

Juan Antonio de la Puente 2005

Open Ravenscar Kernel (ORK) DIT/UPM


ncleo de SOTR para Ada / Ravenscar

18/09/2005

Tecnologa de los sistemas de tiempo real

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

Juan Antonio de la Puente 2005

Hay varias clases de lenguajes de inters para STR:


Lenguajes ensambladores
flexibles y eficientes, pero costosos y poco fiables

Lenguajes secuenciales (Fortran, C, C++)


necesitan un SO para concurrencia y tiempo real

Lenguajes concurrentes (Ada, Java, ...)


concurrencia y tiempo real incluidos en el lenguaje
18/09/2005 Tecnologa de los sistemas de tiempo real 10

C
Es un lenguaje muy utilizado para programacin de sistemas Es un lenguaje
Juan Antonio de la Puente 2005

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

18/09/2005

Tecnologa de los sistemas de tiempo real

11

Ada
Es un lenguaje diseado especficamente para sistemas de tiempo real empotrados
concurrencia tiempo real acceso al hardware e interrupciones

Juan Antonio de la Puente 2005

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)
Tecnologa de los sistemas de tiempo real 12

18/09/2005

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

Juan Antonio de la Puente 2005

Los anexos definen


paquetes de biblioteca mecanismos de implementacin

No aaden sintaxis ni vocabulario al lenguaje


18/09/2005 Tecnologa de los sistemas de tiempo real 13

Ada 2005
Es la nueva norma en proceso de aprobacin. Incluye:
Mejor soporte para sistemas de tiempo real
Juan Antonio de la Puente 2005

perfil de Ravenscar relojes y temporizadores de tiempo de ejecucin nuevos mtodos de planificacin del procesador

Mejoras en la programacin mediante objetos


interfaces

Mejoras en la estructura de los programas y en las reglas de visibilidad de las declaraciones Mejoras en la biblioteca estndar Otras mejoras en el lenguaje

18/09/2005

Tecnologa de los sistemas de tiempo real

14

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
Juan Antonio de la Puente 2005

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

18/09/2005

Tecnologa de los sistemas de tiempo real

15

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

Juan Antonio de la Puente 2005

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

18/09/2005

Tecnologa de los sistemas de tiempo real

16

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
Juan Antonio de la Puente 2005

Java Real-time Experts Group (Sun & otros)


Real-Time Specification for Java (2000-2001) basada en un mquina virtual extendida para STR hay una implementacin de referencia

Real-Time Java Working Group (J-Consortium)


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

Los compiladores y las mquinas virtuales para Java de tiempo real no estn todava suficientemente maduros
18/09/2005 Tecnologa de los sistemas de tiempo real 17

Ejemplos (1)

aplicacin
Juan Antonio de la Puente 2005

aplicacin Ada / RTS ORK computador ERC32 ncleo de tiempo real

aplicacin Ada/C y RTS/bibliotecas MarteOS computador Ix86

C / libc VxWorks computador PowerPC sistema operativo de tiempo real

18/09/2005

Tecnologa de los sistemas de tiempo real

18

Ejemplos (2)

sistema de control
Juan Antonio de la Puente 2005

sistema de control (ejecutivo cclico) ensamblador microcontrolador

RT Java RTSJ VM computador Ix686 mquina virtual de Java

mquina desnuda

18/09/2005

Tecnologa de los sistemas de tiempo real

19

10

Ejemplos (3)
aplicaciones convencionales
Juan Antonio de la Puente 2005

aplicaciones de tiempo real Ada/C + RTS RT Linux XtratuM

lenguajes convencionales Linux

computador Ix686 nano-ncleo con varias mquinas virtuales

18/09/2005

Tecnologa de los sistemas de tiempo real

20

Resumen
La tecnologa de software convencional no es adecuada, en general, para desarrollar sistemas de tiempo real En el curso usaremos algunos lenguajes de programacin para ilustrar los conceptos ms importantes de los STR
C / POSIX Ada 2005 RT Java

Juan Antonio de la Puente 2005

18/09/2005

Tecnologa de los sistemas de tiempo real

21

11

También podría gustarte