Download Tema 3: Programación de Sistemas de Tiempo Real

Document related concepts
Transcript
Tema 3: Programación de Sistemas de Tiempo Real
Objetivos:
» Analizar:
• las técnicas y herramientas que se pueden utilizar para
diseñar sistemas de tiempo real
• las características principales de los SOTR
• las normas POSIX (Interfaz estándar)
• los distintos tipos de lenguajes para la programación de
STR
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
1
Tema 3: Programación de Sistemas de Tiempo Real
Índice:
» Desarrollo de sistemas
» Lenguajes para sistemas de tiempo real
» Sistemas Operativos. Normas POSIX
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
2
Tema 3: Programación de Sistemas de Tiempo Real
Referencias:
• Transparencias de Juan Antonio de la Puente
http://polaris.dit.upm.es/~jpuente/
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
3
Tema 3: Programación de Sistemas de Tiempo Real
Índice:
» Desarrollo de sistemas
» Lenguajes para sistemas de tiempo real
» Sistemas Operativos. Normas POSIX
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
4
Tema 3: Programación de Sistemas de Tiempo Real
Desarrollo de Sistemas de Tiempo Real
• Se apoya en conceptos, métodos y herramientas de
ingeniería de software
Normalmente comprende una serie de actividades:
»
»
»
»
»
Análisis de Requisitos
Diseño Estructural
Diseño Detallado
Realización
Pruebas
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
5
Tema 3: Programación de Sistemas de Tiempo Real
Desarrollo de Sistemas de Tiempo Real
• Análisis de Requisitos
» Análisis de la funcionalidad del sistema y sus propiedades
(comportamiento temporal, fiabilidad, comportamiento en
caso de averías, etc.)
» Modelo del entorno: sistema controlado e interfaz con el
mismo y con el operador
Resultado: Modelo conceptual (o lógico) del sistema
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
6
Tema 3: Programación de Sistemas de Tiempo Real
Desarrollo de Sistemas de Tiempo Real
• Diagrama de Actividades
a
A
x
operador
A1
b
S1
S2
u
sensor
y
Sistemas Informáticos en Tiempo Real
z
v
B1
D1
Marga Marcos,
© 2001
pantalla
7
Tema 3: Programación de Sistemas de Tiempo Real
Desarrollo de Sistemas de Tiempo Real
• Elementos de los Diagramas de Actividades
actividad
Flujo de datos
Control
Flujo de control
datos
Actividad externa
Refinamiento
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
8
Tema 3: Programación de Sistemas de Tiempo Real
Desarrollo de Sistemas de Tiempo Real
» Diseño de Sistemas
• Descomposición:
» consiste en dividir un sistema grande y complejo en
módulos de tamaño manejable.
Módulos de interés:
• objetos abstractos: se definen por las operaciones
que se pueden hacer sobre ellos
• procesos: son entidades activas que se pueden
ejecutar concurrentemente
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
9
Tema 3: Programación de Sistemas de Tiempo Real
Desarrollo de Sistemas de Tiempo Real
» Diseño de Sistemas
• Abstracción:
» consiste en ocultar los detalles que no son relevantes en
un momento dado.
El resultado de esta actividad es un modelo estructural
(ó físico) del sistema.
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
10
Tema 3: Programación de Sistemas de Tiempo Real
Desarrollo de Sistemas de Tiempo Real
» Diagramas de estructura
• Permiten representar gráficamente un modelo estructural
ejemplo:
A
P
B
C
D
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
11
Tema 3: Programación de Sistemas de Tiempo Real
Desarrollo de Sistemas de Tiempo Real
•
•
Las características específicas de los sistemas de tiempo real
críticos condicionan los métodos y herramientas que se utilizan
para desarrollar el software
No todas las técnicas que se usan para construir otros tipos de
sistemas sirven para el software de tiempo real crítico
» suele haber problemas de fiabilidad y determinismo temporal
•
Nos centraremos en los lenguajes de programación y sistemas
operativos
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
12
Tema 3: Programación de Sistemas de Tiempo Real
Índice:
» Desarrollo de sistemas
» Lenguajes para sistemas de tiempo real
» Sistemas Operativos. Normas POSIX
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
13
Tema 3: Programación de Sistemas de Tiempo Real
Lenguajes de Programación
» debe facilitar la realización de sistemas
• concurrente, fiable, comportamiento temporal analizable
» lenguajes de interés para STR:
• lenguaje ensamblador
» flexibles y eficientes pero costoso en desarrollo y poco fiable
• lenguaje secuencial (Fortran, C, Pascal,...)
» necesita s.o. para concurrencia y tiempo real
• lenguaje concurrente (Modula, Ada,...)
» concurrencia y tiempo real incluidos en el lenguaje
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
14
Tema 3: Programación de Sistemas de Tiempo Real
Lenguajes de Programación: C
» muy utilizado para la programación de sistemas
» características:
• estructurado, con bloques
• sin tipado fuerte
• muy flexible (a veces poco seguro)
» no tiene integrada concurrencia ni tiempo real
• se obtiene a través de llamadas al S.O.
» No facilita la descomposición en módulos ni la
programación con objetos
• se puede hacer con C++
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
15
Tema 3: Programación de Sistemas de Tiempo Real
Lenguajes de Programación: Ada
» lenguaje específicamente diseñado para STR
empotrados
• incluye concurrencia, tiempo real, acceso al hw e interrupciones
» lenguaje descendiente del pascal
• estructura en bloques y fuertemente tipado
» pensado para construir sistemas grandes y cambiantes
•
•
•
•
paquetes (módulos) y esquemas genéricos
extensión de tipos con herencia
biblioteca jerárquica
interfaces a otros lenguajes normalizada
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
16
Tema 3: Programación de Sistemas de Tiempo Real
Lenguajes de Programación: Ada95
» la norma define:
• un núcleo común a todas las implementaciones
• unos anexos especializados para:
»
»
»
»
»
»
programación de sistemas
sistemas de tiempo real
sistemas distribuidos
sistemas de información
cálculo numérico
fiabilidad y seguridad
• los anexos definen:
» paquetes de biblioteca
» mecanismos de implementación
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
17
Tema 3: Programación de Sistemas de Tiempo Real
Índice:
» Desarrollo de sistemas
» Lenguajes para sistemas de tiempo real
» Sistemas Operativos. Normas POSIX
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
18
Tema 3: Programación de Sistemas de Tiempo Real
Sistemas Operativos
» los sistemas operativos convencionales no son
adecuados para realizar STR
• no tienen comportamiento temporal determinista
• no permiten garantizar tiempos de respuesta
» un sistema operativo de tiempo real debe ofrecer:
• gestión de la concurrencia: procesos ligeros (threads) con
memoria común
• temporización: medida de tiempos y ejecución periódica
• planificación: prioridades fijas con desalojo, acceso a
recursos con protocolos de herencia de prioridad
• dispositivos de E/S: acceso a hw e interrupciones
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
19
Tema 3: Programación de Sistemas de Tiempo Real
Sistemas Operativos: POSIX
» Es un conjunto de normas IEEE/ISO que definen
interfaces de sistemas operativos
» Permiten desarrollar software portable y reutilizable
(Portable Operating System Interface) + X
» Las normas definen servicios que se pueden incluir
o no en un sistema operativo particular
» Se definen también perfiles de aplicación con
servicios estándar
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
20
Tema 3: Programación de Sistemas de Tiempo Real
Sistemas Operativos: POSIX
POSIX 1, 1a
POSIX 1b,1d,1i,1j
POSIX 1c
POSIX 1e
POSIX 1f
POSIX 1g
POSIX 1h
POSIX 21
Sistemas Informáticos en Tiempo Real
interfaz básica (similar a UNIX)
extensiones de tiempo real
procesos ligeros (threads)
seguridad
NFS
servicios de red (sockets, XTI)
tolerancia de fallos
comunicaciones de tiempo real
Marga Marcos,
© 2001
21
Tema 3: Programación de Sistemas de Tiempo Real
POSIX: Perfiles de aplicación
» definen subconjuntos de servicios para distintos
tipos de aplicaciones
POSIX 10
POSIX 13
POSIX 14
POSIX 18
supercomputadores
sistemas de tiempo real
multiprocesadores
estación de trabajo
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
22
Tema 3: Programación de Sistemas de Tiempo Real
POSIX13: Perfiles para sistemas de tiempo real
• PSE50: sistema de tiempo real mínimo
» sin gestión de memoria, ficheros ni terminal
» solo threads (no procesos pesados)
• PSE51: controlador de tiempo real
» con sistema de ficheros y terminal
• PSE52: sistema de tiempo real dedicado
» con gestión de memoria y procesos pesados
• PSE53: sistema de tiempo real generalizado
» sistema completo con todos los servicios
Sistemas Informáticos en Tiempo Real
Marga Marcos,
© 2001
23