Introduccion STR

Anuncio
Índice
Introducción a los
Sistemas de Tiempo Real
Tema 4
Carlos J. Escudero Cascón

¿Qué es un Sistema de Tiempo Real?

Sistemas empotrados

Características

Planificación

Clasificación

Ejemplos
Sistemas de Tiempo Real
¿Qué es un Sistema de Tiempo real? (I)
¿Qué es un Sistema de Tiempo real? (y II)
Cualquier Sistema en el que el instante en el que se produce la salida
es significativo. Esto suele deberse a que la entrada se
corresponde a algún movimiento en el mundo físico y la salida
tiene que estar relacionada con ese mismo movimiento. Para una
puntualidad aceptable el lapso entre la entrada y la salida debe ser
lo suficientemente pequeño (Oxford Dictionary of Computing)


Interacciona repetidamente con su entorno físico
Responde a los estímulos que recibe del mismo dentro de un plazo de
tiempo determinado



usuario introduce un comando y espera una
respuesta rápida
 No es crítico si la respuesta no se recibe
inmediatamente
 No dar una respuesta “a tiempo” no se considera
como errónea

En Sistemas de Tiempo Real
 La
Para que el funcionamiento del sistema sea correcto no basta con que las
acciones sean correctas, sino que tienen que ejecutarse dentro del
intervalo de tiempo especificado


exactitud del resultado depende:
Resultados lógicos computación
Instante de producción de los resultados
 No
vale una respuesta fuera de tiempo aunque sea
correcta
El tiempo en que se ejecutan las acciones del sistema es
significativo
Sistemas de Tiempo Real
En muchos sistemas:
 El
Un sistema de tiempo real es un sistema informático que


Incluso puede ser indeseable
3
Sistemas de Tiempo Real
Sistemas Empotrados (I)










específicas, pre-definidas
limitados (memoria, potencia)
 La aplicación se ejecuta desde ROM
 Recursos
Automóviles
Electrónica de consumo: teléfonos, radios, televisores
Electrodomésticos
Periféricos de computador

Existen...
 Los
Sistemas Embebidos estan en el 90% de los
dispositivos electrónicos y de cómputo en todo el
mundo
 Existen mas sistemas embebidos que computadoras
(>10)
A menudo, el computador no es visible desde fuera
Los recursos son limitados
Sistemas de Tiempo Real
Sistemas de cómputo basados en
microprocesadores
 Funciones
Características

4
Sistemas Empotrados (II)
El objetivo no es el procesado de información, pero
requieren esto para el desarrollo de su tarea principal.
Muchos sistemas de tiempo real son componentes de
otros sistemas, en los que realizan funciones de control
Sistemas empotrados (embebidos)
Ejemplos

2
5
Sistemas de Tiempo Real
6
1
Sistemas Empotrados (III)
Sistemas Empotrados (y IV)
Sistema de oficina y
equipos móviles
Sistemas en
Edificios
Fabricacion y
control de procesos
Máquinas contestadoras
Copiadoras
Faxes
Laptops y notebooks
Teléfonos móviles
PDAs, Organizadores
personales
Still and video cameras
Sistemas de Telefonía
Impresoras
Hornos de Microondas
Aire acondicionado
Respaldo y generadores de
luz
Administración de edificios
Televisión por cable
Controladores de Fuego
Calefacción y Ventilación
Elevadores, Escaleras
Iluminación
Seguridad
Cámaras de Seguridad
Extintores
Fábricas automatizadas
Plantas embotelladoras
Sist. control de energía
Plantas de manufactura
Estaciones nucleares
Refinerías de petróleos
Sistemas de energía
Robots
Sistemas de switching
Sist. Agua y alcantarillado
Transporte
Comunicaciones
Otros equipos
Aviones
Trenes
Autobuses
Barcos
Muelles
Automóviles
Cntr. de tráfico aéreo
Sist. de señalización
Radares
Luces de Trafico
Máquinas de boletos
Detects. de velocidad
Telefonía
Cable
Estaciones base
Centrales
Satélites
Posicionamiento Global
Puntos acceso
Máquinas contestadoras
Sist. tarjetas de crédito
Equipos de imágenes médicas
Ctrl. de calefacción domestica
VCRs
DVDs
7
Sistemas de Tiempo Real
Sistemas de Tiempo Real
Características (I)

Características (II)
Gran tamaño y complejidad
 Algunos STR tienen millones de líneas de código
 La variedad de funciones aumenta la complejidad

Seguridad y fiabilidad

Determinismo temporal


Simultaneidad de acciones (concurrencia)

 Los
dispositivos físicos controlados funcionan al
mismo tiempo
 Los componentes de software que los controlan
actúan concurrentemente

Sistemas críticos: fallos con consecuencias graves

incluso en sistemas relativamente pequeños




Dispositivos de entrada y salida especiales

manejadores de dispositivos forman parte del
software de aplicación
 No se controlan por el S.O.
Pérdida de vidas humanas, pérdidas económicas, daños medioambientales
Acciones en intervalos de tiempo determinados
Fundamental que el comportamiento temporal de los STR sea
determinista

 Los
No hay que confundirlo con la necesidad de que sea eficiente y/o rápido
El sistema debe responder correctamente en todas las situaciones
Hay que prever el comportamiento en el peor caso posible
Todo ello requiere un gran conocimiento de las características de la
aplicación y del entorno del sistema
Software para sistemas de tiempo real es necesario utilizar
métodos y herramientas especiales:


Lenguajes de programación: C, Ada, C++. Java RT, Ocamm
Sistemas operativos: VxWorks, normas POSIX para tiempo real,
LynxOS
9
Sistemas de Tiempo Real
Sistemas de Tiempo Real
Planificación (I)

Decidir que función está realizando el
sistema en cada instante de tiempo
 Tarea (thread): cada uno de los módulos
software que se pueden invocar para
realizar una función concreta

Todos los procesos comparten adecuadamente el
recurso
 Si
existe algún grado de contención en el
sistema:
 Mínima

Diseño - quien obtiene que prioridades, y cuando
Cómo se asigna el acceso a los recursos
compartidos
 Problemas de concurrencia


Sistemas de Tiempo Real
10
Planificación (II)
Un conjunto de procesos requieren el acceso a
un recurso compartido: Procesador, medio de
comunicación, dispositivos.
 Si no existe contención suficiente:

8
11
unidad de planificación de un sistema
Algoritmo de planificación: conjunto de
reglas que determinan qué tarea se debe
ejecutar en cada instante
Sistemas de Tiempo Real
12
2
Planificación (y III)

Clasificación: tiempo de servicio y plazo (I)
Instantes que determinan una tarea:

o invocación: instante en el que ocurre el
evento antes del cual la tarea no podría ejecutarse y
a partir del cual, la tarea ya está preparada para su
ejecución
 Plazo: instante llegado el cual la tarea debe haber
completado su computación



Todas las acciones deben ocurrir dentro del plazo especificado
Tardanza cero o negativa
En caso contrario resultados catastróficos


Se pueden perder plazos de vez en cuando
El valor de la respuesta decrece con el tiempo


 Tiempo
de servicio: intervalo de tiempo transcurrido
entre su invocación y el final de su respuesta
 Tardanza: retardo producido desde su plazo hasta el
final de su respuesta
Ejemplo: GPS
Tiempo real firme (firm real-time)


Se pueden perder plazos ocasionalmente
Una respuesta tardía no tiene valor


Ejemplo: control de vuelo, UCI, central nuclear
Tiempo real flexible (soft real-time)


Análisis del comportamiento de tareas:
Sistemas de Tiempo Real
Tiempo real estricto (hard real-time)

 Activación
Ejemplo: sistemas multimedia (pérdida de tramas de audio y/o
vídeo)
En un mismo sistema puede haber componentes con
distintos tipos de requisitos temporales
13
Clasificación: forma de invocación (y II)

Pruebas (I)
Tarea periódica

 Se
invoca y ejecuta repetidamente a intervalos
constantes, a partir de la invocación inicial


Tarea esporádica

 Se
invoca y ejecuta repetidamente a intervalos no
constantes, aunque se puede determinar una
separación mínima entre invocaciones consecutivas



Tarea aperiódica
 Se
invoca y ejecuta a intervalos irregulares
 Invocaciones en instantes arbitrarios


En un mismo sistema puede haber tareas con
diferentes formas de invocación
Sistemas de Tiempo Real
La mayoría de los errores en los STR se deben a
imprevistas iteracciones entre procesos
Los errores dependen de un instante concreto y se
manifiestan en estados poco habituales
Los métodos de diseño adecuados hay que
combinarlos con estrategias de prueba
Se deben de estudiar todos los caminos que llevan a
los errores detectados
No sólo hay que probar el funcionamiento en el entorno
correcto. Un comportamiento incorrecto del entorno
puede producir un error
Un simulador es un programa que imita las acciones de
un sistema en el que se ha instalado software de tiempo
real.

Es un entorno de pruebas
15

Ejemplos (I)
Un simulador permite recrear un comportamiento normal
o anormal del sistema
Algunos estados de error de un sistema sólo se pueden
probar mediante un simulador

p.e. la fusión del núcleo de un reactor nuclear

Los simuladores permiten repetir algunos experimentos
que en la realidad no se podría
Los simuladores son capaces de reproducir con
precisión toda la secuencia de posibles eventos de un
sistema
En aplicaciones complejas puede que se necesite el uso
de un multiprocesador o de uno que no se pueda
construir fácilmente
El desarrollo de un simulador no es evidente

Después del simulador se realizará un prototipo




16
Sistemas de Tiempo Real
Pruebas (y II)

14
Sistemas de Tiempo Real
Tarea
!1
T
C
P
U
16
4
1
0.250
!2
40
5
2
0.125
!3
80
32
3
0.400
T: Periodo de ejecución
C: Tiempo de Computo
P: Prioridad
0.775
!1
!2
!3
Simuladores de lanzaderas espaciales más caros que el propio
sistema
Sistemas de Tiempo Real
17
Sistemas de Tiempo Real
18
3
Ejemplos (II)
Ejemplos (III)
76
Actividades en un ordenador de un automóvil.
ve
loc
ida
d
Ejemplos (IV)
Tarea
T
C
A
25 10
B
25 8
C
50 5
D
50 4
E
100 2
¾
¾
El ciclo principal dura 100 ms
Se compone de 4 ciclos
secundarios de 25 ms cada uno
TS = 25ms
0
B
C
A
25
B
D E
A
B
ad
e lo
V
le-2
ustib
comb
velocidad
24
40
Sistemas de Tiempo Real
20
Ejemplos (V)
TM = 100ms
A
20
c id
3
fren
ado
44
19
1
le -
54
C=tiempo de computo (peor caso), T=Periodo de ejecucion, D=Plazo de respuesta
Sistemas de Tiempo Real
le -
s tib
C=10ms.
Otro software
T=40ms.
no-critico
* implica descomponer actividades
grandes en varias ejecuciones.
bu
Control de
combustible
14
tib
com
C=40ms.
T=80ms.
D=80ms.
fren
ado
us
Control de
Frenado
64
mb
Control de
Velocidad
C=10ms.
T=40ms.
D=40ms.
0
4
velocid
ad
no
critico
co
C=4ms.
T=20ms.
D=5ms.
-2
tible
bus
com
C
50
A
B
75
Sistemas de Tiempo Real
D
100
21
procedure Cyclic_Executive is
type Cycle is mod 4;
Frame ; Cycle : = 0;
begin
loop
Wait_for_Interrupt;
case Frame is
when 0 => A; B; C;
when 1 => A; B; D; E;
when 2 => A; B; C;
when 3 => A; B; D;
end case;
Frame : = Frame + 1;
end loop;
end Cyclic_Executive;
Sistemas de Tiempo Real
22
Ejemplos (y VI)
La solución concurrente es más simple de diseñar y modificar.
task body speed is
begin
loop
speed_measurement;
next:=next+0.2
sleep_until_next;
end loop
end speed
task body fuel is
begin
loop
fuel_injection;
next:=next+0.2
sleep_until_next;
end loop
end speed
task body brake is
begin
loop
control_brakes;
next:=next+0.2
sleep_until_next;
end loop
end speed
task body non_critical is
begin
loop
perform computation;
end loop
end speed
Sistemas de Tiempo Real
23
4
Descargar