Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Objetivos
Ofrecer una visin de los aspectos relacionados
con el desarrollo de sistemas de tiempo real y
presentar las caractersticas principales de
ndice
Introduccin
n Modelo de tareas de tiempo real y
planificacin
n Lenguajes de programacin
n Ncleos de tiempo real
n Sistemas empotrados
n Conclusiones
n
Introduccin
Ejemplo
Control por computador de temperatura y nivel de un depsito
Actuador
es
Interfaz
Sensores
Ejemplo
Control por computador de temperatura y nivel de un depsito
Control_Tem
p
Actuado
res
Inter
faz
Sensor
es
Control_Nive
l
Sensorizaci
n
Memori
a
E/S
Monitorizaci
n
Tarea: Control de temperatura (Control_Temp)
Cada 5 segundos
Leer_Sensor_Temp(Val_Temp)
Calcular_Accin(Ref,Val_Temp,Acc_Temp,)
Aplicar_Accin(Acc_Temp)
Antes de 2 segundos
Sistemas Informticos de tiempo real.
Ejemplos
Servomecanismos
Sistemas de avinica
Sistemas de control de procesos
Automatismos
Sistemas de robtica
Sistemas de fabricacin (CIM)
Sistemas de control de comunicaciones
Sistemas de comunicacin, mando y control
Sistemas Informticos de tiempo real.
Introduccin
Definiciones:
Sistemas de tiempo real
Ncleos de tiempo real
Sistema empotrado
Sistema empotrado de control
Introduccin
Sistemas de tiempo real
Un sistema de tiempo real es un sistema informtico en el
que es significativo el tiempo en el que se producen sus
acciones.
No es suficiente que las acciones del sistema sean
correctas lgicamente, sino que, adems, deben producirse
dentro de un intervalo de tiempo determinado (antes de un
plazo).
Los estmulos externos aparecen en instantes de tiempo no
predecibles.
Introduccin
Tipos de sistemas de tiempo real
Crticos: (hard real time systems) son aquellos en los
que el tiempo de respuesta debe garantizarse a toda
costa. Una respuesta tarda puede tener consecuencias
fatales.
Valor de la
respuesta
max
t
Plazo de respuesta
Sistemas Informticos de tiempo real.
10
Introduccin
Tipos de sistemas de tiempo real
Esenciales: (soft real time systems) representan
aquellos sistemas con restricciones de tiempo en las que
una respuesta tarda no produce graves daos pero si un
deterioro del funcionamiento global.
Valor de la
respuesta
max
t
Plazo de respuesta
11
Introduccin
Ncleos de tiempo real (Real-time kernels)
12
Introduccin
Sistemas empotrados (Embedded systems)
13
Introduccin
Sistemas de tiempo real: Componentes
Interfaz
Sensores
S
Sistema de
tiempo real
Proceso
S
...
S
A ... A
Actuatores
14
Introduccin
Sistemas de tiempo real
Interfaz
Sensores
S
Sistema de
tiempo real
Proceso
S
...
S
A ... A Actuatores
15
Introduccin
Referencia r(t)
A/D
A/D
Controlador
r(k)
y(k)
Algoritmo
de control
D/A
u(t)
y(t)
Sensor
u(k)
Proceso
Actuador
16
Introduccin
Interfaz
Sensores
S
Sistema de
tiempo real
Proceso
S
...
S
A ... A
Actuatores
Tareas
Sistema de
tiempo real
Aplicacin
RTOS
Hardware
Sistemas Informticos de tiempo real.
17
Introduccin
Tareas
RTOS
Hardware
reference
task Controller
each Sample do
get_sensor (y);
determine_action(u);
send_action(u);
update(e,y,u,);
end do;
end task;
18
Introduccin
Tareas
RTOS
Process_1
Process_2
Hardware
y1
u1 y2
Controller
u2
y3
Controller
u3
y4
Controller
u4
Controller
19
Control digital
n
2.5T
5T
20
Periodo de muestreo
En el diseo del regulador se define una frecuencia
mnima (teorema de Shanon-Nyquist).
A frecuencia mayores mejor funcionamiento.
Pero: Sistemas no lineales => nuevo regulador
dependiendo de la frecuencia
En la prctica: [Pmin, Pmax]
21
ndice
Introduccin
n Modelo de tareas de tiempo real y
planificacin
n Lenguajes de programacin
n Ncleos de tiempo real
n Sistemas empotrados
n Conclusiones
n
22
23
24
25
26
27
Plazo
40
70
150
250
Offset
0
0
0
0
28
Ejecucin de tareas
+Prioridad
T1:{100,20}
T2:{150,40}
T3:{300,100}
T3
T2
-Prioridad
T1
50
100
150
200
250
300
350
400
450
500
550
600
tiempo
29
Ejecucin de tareas
+Prioridad
T1:{100,20}
T2:{150,40}
T3:{300,100}
Planificable
T1
T2
-Prioridad
T3
50
100
150
200
250
300
350
400
450
500
550
600
tiempo
30
Planificacin
El algoritmo de planificacin determina cul ser la siguiente tarea a
ejecutarse.
Tareas preparadas
CPU
En ejecucin
Tareas bloqueadas
Sistemas Informticos de tiempo real.
31
Tareas preparadas
CPU
En ejecucin
Tareas bloqueadas
32
ndice
Introduccin
n Modelo de tareas de tiempo real y
planificacin
n Lenguajes de programacin
n Ncleos de tiempo real y Sistemas
empotrados
n Conclusiones
n
33
Lenguajes de programacin
Caractersticas deseables
Modelar el paralelismo de entorno => concurrencia
Gestionar el paso del tiempo de forma adecuada => Relojes y
temporizadores
Control temporal de las acciones => manejadores de tiempos: de
ejecucin, de actividad, ..
Acceso a bajo nivel => Manejadores de interrupciones, definicin
de tipos con registros de dispositivos, manejadores de dispositivos
Robusto y fiable => Manejadores de errores (excepciones)
Modelo de objetos => Tipos de datos orientados a objetos
Compilacin separada, transportable y eficiente
34
Lenguajes de programacin
Aunque existen muchos lenguajes que se han utilizado, los ms
usados son C, C++ y Ada. Por otro lado, RTJava puede ser una opcin
de futuro.
C: aunque es un lenguaje secuencial que no ofrece muchas de las
caractersticas deseables (concurrencia, modelo de objetos, robustez,
etc.), su eficiencia y proximidad a los s.o. lo ha hecho popular.
C++: Aada a C la concurrencia, modelo de objetos, etc. No tiene
abstracciones propias de tiempo real.
Ada: Proporciona las caractersticas deseables. Es un lenguaje
desarrollado para sistemas empotrados de tiempo real. Sus distintas
versiones (83, 95, 2005) han mejorado sus abstracciones para el
desarrollo de aplicaciones de tiempo real.
RTJava: Ofrece un modelo completo para el sistemas de tiempo real,
los principales problemas son la gestin de memoria (recolector de
basura) y el modelo de ejecucin (compilado/interpretado)
Sistemas Informticos de tiempo real.
35
Lenguajes de programacin
Lenguaje secuencial:
ejecutable
abstracciones
Tareas
comunicacin
Sincronizacin
Objetos protegidos
Acceso
a bajo nivel
.
Tolerancia a fallos
S.O.T.R
POSIX
36
Lenguajes de programacin
Lenguaje Ada:
task Periodic_Task is
pragma Priority(10);
end Periodic_Task;
task body Periodic_Task is
Per : Time_Span; Next : Time;
begin
Next := Clock;
loop
-- Acciones
Next := Next + Per;
delay until Next;
end loop;
end Periodic_Task;
ejecutable
abstracciones
Tareas
comunicacin
Sincronizacin
Objetos protegidos
Acceso a bajo nivel
Tolerancia a fallos
S.O.T.R.
Sistemas Informticos de tiempo real.
37
Lenguajes de programacin
ADA
Creacin de tareas
Especificacin
task Periodic_Task;
Implementacin
Tipo tareas
Especificacin
Instanciacin
Implementacin
38
Lenguajes de programacin
Creacin de tareas
C/POSIX
pthread_t Tarea1;
void control1(args) {
.
}
pthread_create( &Tarea1, NULL, (void*)& control1, &args);
39
ADA
Siguiente:=Clock+Periodo;
Siguiente:=Siguiente+Periodo; Siguiente:=Siguiente+Periodo;
40
Programacin de str
Se han visto los aspectos ms relevantes:
Tipos de lenguajes
Funcionalidades
Concepto de tarea, tipo de tareas
Programacin
Gestin del tiempo
Tareas Peridicas
Pero faltan muchas cosas por ver:
Tareas espordicas
Servicio aperidico
Limitar la ejecucin de unas acciones
Protocolos para la gestin de los recursos compartidos
Acceso a bajo nivel
etc.
Sistemas Informticos de tiempo real.
41
ndice
Introduccin
n Modelo de tareas de tiempo real y
planificacin
n
Lenguajes de programacin
42
43
Estructura y Servicios
Un sistema operativo (ncleo) de tiempo real ofrece los
siguientes servicios: Gestin de interrupciones
Gestin de memoria
Gestin de procesos
Gestin de la E/S
Gestin de ficheros
Interfaz (llamadas al sistema)
Planificacin
G. Interrupciones
Gestin de listas
G. Memoria
Manejadores de
dispositivo
interrupciones
44
Sistemas empotrados
Los ncleos para empotrados son sistemas operativos de tiempo real
con los componentes estrictamente necesarios.
Se requiere configurar el ncleo, seleccionar los componentes,
compilar y descargarlo en el dispositivo con la aplicacin.
Factores de simplificacin
45
Sistemas empotrados
Sistemas empotrados
Se desarrolla la aplicacin
Host
Se carga:
RTOS + aplicacin
El RTOS puede configurarse ..
Sistemas Informticos de tiempo real.
46
Conclusiones: resumen
Un sistema de tiempo real es un sistema informtico que
ejecuta una (o varias aplicaciones) que tienen restricciones
temporales.
Cada aplicacin est formada por tareas concurrentes en el
que algunas tienen restricciones temporales y otras pueden
no tenerlas.
Las aplicaciones se ejecutan sobre un sistema operativo de
tiempo real que ofrece la garanta de que los servicios son
predecibles y que las tareas podrn ejecutarse en los plazos
determinados. Pero un anlisis previo de planificabilidad del
sistema es necesario para conocer si el sistema podr
garantizarlo o no.
El sistema se puede ejecutar formando parte de un sistema
ms grande y complejo (en el que es una parte) (empotrado)
o como un sistema aislado
Sistemas Informticos de tiempo real.
47
Actividad
n
48