Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
18/09/2005
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
Desarrollo cruzado
fuentes
compilador
objetos
montador
Plataforma de desarrollo
Plataforma de ejecucin
RMON
programa cargado
18/09/2005
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
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
18/09/2005
Normas POSIX
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
18/09/2005
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)
18/09/2005
Ejemplos de SOTR
LynxOS pSOS QNX VxWorks RTEMS RT-Linux Marte Universidad de Cantabria
perfil POSIX PSE50 para sistemas empotrados en PCx86
18/09/2005
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
Juan Antonio de la Puente 2005
estructurado, con bloques sin tipado fuerte muy flexible (pero a veces poco seguro)
18/09/2005
11
Ada
Es un lenguaje diseado especficamente para sistemas de tiempo real empotrados
concurrencia tiempo real acceso al hardware e interrupciones
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
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 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
14
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
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
18/09/2005
16
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
18/09/2005
18
Ejemplos (2)
sistema de control
Juan Antonio de la Puente 2005
mquina desnuda
18/09/2005
19
10
Ejemplos (3)
aplicaciones convencionales
Juan Antonio de la Puente 2005
18/09/2005
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
18/09/2005
21
11