Download Introducción a los Sistemas de Tiempo Real

Document related concepts
no text concepts found
Transcript
Introducción a los Sistemas de Tiempo Real
Sistemas de Tiempo
p Real
htt //
http://www.vision.uji.es/~pla/ii75
i i
ji / l /ii75
Í di
Índice
• Introducción.
d
ó
– Ejemplos de Sistemas Empotrados.
– Características de un Sistema de Tiempo Real.
• Programación de Sistemas de Tiempo Real.
– Lenguaje C.
– Java
– Ada
– Sistemas operativos de Tiempo Real
F. Pla - UJI
2
I t d
Introducción
ió
• Un STR podría definirse como un sistema en el cual la
respuesta a un estímulo generado externamente debe
producirse dentro de un intervalo finito y especificado.
• Consecuentemente, la garantía de un sistema de tiempo
real no depende solamente del resultado lógico de la
computación, sino también del tiempo transcurrido
hasta que los resultados son producidos
producidos.
• Los sistemas de tiempo real suelen estar integrados en
sistemas de ingeniería más general, en el que se
realizan funciones de control y/o monitorización:
Sistemas empotrados (Embedded
(Embedded Systems)
Systems)
F. Pla - UJI
3
U sistema
Un
i t
d
de control
t l de
d fluido
fl id
Sistema de Control
de Caudal
Lectura
del nivel
Procesado
Ángulo
de salida
Computador
F. Pla - UJI
Depósito
4
Sistema de control de procesos
F. Pla - UJI
5
Sistema de control de producción
F. Pla - UJI
6
Sistema de mando y control
F. Pla - UJI
7
Ej
Ejemplos
l de
d Sistemas
Si t
Empotrados
E
t d
• Defensa: Bombas y misiles inteligentes, vehículos,
di
dirección
ió de
d tiro,...
ti
• Electrónica de consumo: Vídeos, Lavadoras,
frigoríficos,..
• Automóviles: Control de velocidad,, climatización,,
inyección,...
• Aviónica, espacial: Computadoras de vuelo, Path
Path-finder,...
F. Pla - UJI
8
Características
C
t í ti
de
d un STR
• Gran tamaño y complejidad
– Algunos STR tienen millones de líneas de código.
– La variedad de funciones incrementa la complejidad
incluso en sistemas pequeños.
• Concurrencia
– Los elementos físicos funcionan simultáneamente.
– Es necesario expresar la concurrencia en la estructura del
programa.
• Dispositivos de entrada/salida especiales
– Los manejadores de dispositivos forman parte del software
de la aplicación.
F. Pla - UJI
9
Características
C
t í ti
de
d un STR
• Seguridad y Fiabilidad
– Aparece sistemas críticos: fallos con consecuencias graves.
Ej una unidad de cuidados intensivos, una planta química,
...
• Determinismo temporal
– Acciones en intervalos de tiempo determinados.
– Es fundamental que el comportamiento de un STR sea
determinista.
determinista
• La predicción de la respuesta es fundamental en el diseño.
• Manipulación de números reales
– Capacidad para manipular números con coma flotante y
reales (alto grado de precisión).
F. Pla - UJI
10
Programación
P
ió de
d Sistemas
Si t
en Tiempo
Ti
Real
R l
• Un lenguaje de programación de STR debe facilitar
la realización de sistemas:
– Concurrentes
– Fiables
– Comportamiento temporal analizable
• Hay varias clases de lenguajes de interés para STR:
– Lenguajes secuenciales (Fortran, Pascal, C, C++).
• Necesitan un SO para concurrencia y tiempo real.
– Lenguajes concurrentes (Modula(Modula-2, Ada, Java,...)
• Concurrencia y tiempo real incluidos en el lenguaje
F. Pla - UJI
11
Lenguaje
L
j C
• Es un lenguaje muy utilizado en programación de
sistemas.
• Es un lenguaje: Muy fiable,
fiable eficiente
eficiente, estructurado
estructurado, poco
legible.
• No
N ti
tiene iintegrada
t
d nii la
l concurrencia
i nii ell tiempo
ti
real.
l
– Se consigue invocando servicios del sistema operativo de
forma explicita
explicita.
– No tiene programación orientada a objetos como C++
F. Pla - UJI
12
Java
Java
• Es un lenguaje pensado para construir sistemas
distribuidos..
distribuidos
– Basado en objetos dinámicos.
– Con concurrencia integrada en el lenguaje
– Biblioteca de clases (APIs).
– Pensado para que el código se interpretado a través de
una máquina virtual.
• La
L definición
d fi i ió original
i i l no es adecuada
d
d para tiempo
ti
reall
– La medida de tiempo no es suficientemente precisa.
– El gestor de memoria de java resulta a veces inapropiado
inapropiado.
– Los mecanismos de sincronización son inadecuados.
F. Pla - UJI
13
Java
Java
• Hay varias propuestas de modificaciones para usar Java
en STR.
– NIST Requeriments for RealReal-Time Extensions to Java
(1999).
– Java Real
Real--Time Expert Group (Sun, ...)
• Real
Real--Time Specification for Java (2000(2000-01)
• Basada en una máquina virtual extendida para STR
– Real
Real--Time Java Working
g Group
p (J(J
( -Consortium).
)
• Real
Real--Time Core Specification (2000)
• Basada en una máquina virtual separada para STR
– Los
L sistemas
i t
distribuidos
di t ib id en Tiempo
Ti
Real
R l tienen
ti
una gran
interés. Sin embargo, el uso de Java en tiempo real
todavía esta en desarrollo
F. Pla - UJI
14
Ada
Ad
• Es un lenguaje diseñado específicamente para STR
empotrados..
empotrados
– Concurrencia y tiempo real.
– Acceso al hardware e interrupciones.
• Es un lenguaje
g j descendiente del Pascal.
– Estructurado y fuertemente tipado.
• Está pensado para construir sistemas grandes y
cambiantes.
– Paquetes (modulos) y esquemas genéricos
– Extensión de tipos con herencia
– Biblioteca jerárquica
– Interfaces normalizados con otros lenguajes (C, Fortran)
F. Pla - UJI
15
Si t
Sistemas
Operativos
O
ti
de
d Tiempo
Ti
Real
R l
• Los sistemas operativos convencionales no son
adecuados para realizar sistemas de tiempo real.
– No tienen un comportamiento determinista.
determinista.
– No permiten garantizar los tiempos de respuesta.
respuesta.
• Un Sistema Operativo
p
de Tiempo
p Real (SOTR)
(
) debe
soportar
– Concurrencia:
Concurrencia: procesos ligeros (threads) con memoria
común.
común
– Temporización
Temporización:: medida de tiempos y ejecución periódica.
– Planificación determinista
– Dispositivos de E/S:
E/S: acceso a recursos de hardware e
interrupciones
F. Pla - UJI
16
Si t
Sistemas
Operativos
O
ti
de
d Tiempo
Ti
Real
R l
• Existen numerosos SOTR:
– http://www.csee.wvu.edu/~jdm/classes/cs258/OScat/rtime.html
• LynxOS.
LynxOS
– Unix SOTR de LynuxWorks (“Lynx RealReal-Time Systems”)
– http://www.lynuxworks.com
http://www lynuxworks com
• pSOS
– Soporta Windows NT 4/2000 y UNIX
UNIX--Solaris
– http://www.windriver.com
• VxWorks,
V W k RTCore
RTC
(antes
( t RTLinuxRTLinux
RTLi
-Pro)
P )
– SO en modo nucleo
– http://www.windriver.com
http://www windriver com
F. Pla - UJI
17
Si t
Sistemas
Operativos
O
ti
de
d Tiempo
Ti
Real
R l
• QNX:
– Sistema basado en arquitectura micronucleo
– http
http://www.qnx.com
://www.qnx.com
• ThreadX
ThreadX..
– SPTR para sistemas empotrados con threads
– http://www.rtos.com
• Windows CE
– Windows de TR, compacto, para sistemas empotrados.
– http://en.wikipedia.org/wiki/Windows_CE
• RTLinux
RTLinux--GPL
http://www.rtlinux--gpl.org
http://www.rtlinux
• RTAI
http://www.rtai.org
– Compatibles con linux
F. Pla - UJI
18