Sei sulla pagina 1di 48

Sistemas Informticos de Tiempo Real

Tema 1. Introduccin a los sistemas de


tiempo real

Objetivos
Ofrecer una visin de los aspectos relacionados
con el desarrollo de sistemas de tiempo real y
presentar las caractersticas principales de

los sistemas de tiempo real y su aplicacin


en la industria.

Sistemas Informticos de tiempo real.

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

Sistemas Informticos de tiempo real.

Introduccin

Sistemas Informticos de tiempo real.

Ejemplo
Control por computador de temperatura y nivel de un depsito

Actuador
es

Interfaz

Sensores

Sistemas Informticos de tiempo real.

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

Sistemas Informticos de tiempo real.

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.

Sistemas Informticos de tiempo real.

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

No Esenciales: sistemas que no tienen restricciones


temporales.

Sistemas Informticos de tiempo real.

11

Introduccin
Ncleos de tiempo real (Real-time kernels)

Un ncleo de de tiempo real es la parte bsica de un sistema


operativo de tiempo real que gestiona los servicios de multi-tarea,
reloj, interrupciones y memoria.
Caractersticas necesarias:
Latencia de las interrupciones. Tiempo desde que se produce la
interrupcin hasta que la tarea se puede ejecutar
Peor tiempo de ejecucin de cada llamada al sistema. Tiene
que ser predecible e independiente del nmero de objetos que
maneje
Tiempo mximo con interrupciones inhibidas

Sistemas Informticos de tiempo real.

12

Introduccin
Sistemas empotrados (Embedded systems)

Un sistema empotrado es un sistema basado en un computador que


forma parte de un otro sistema mayor y realiza algunas de las
funciones del sistema.

Sistemas empotrados de control (Embedded Control


systems)
Son aquellos sistemas empotrados que realizan funciones de control
sobre alguna parte del sistema.

Sistemas Informticos de tiempo real.

13

Introduccin
Sistemas de tiempo real: Componentes
Interfaz

Sensores
S

Sistema de
tiempo real

Proceso

S
...
S

Sistemas Informticos de tiempo real.

A ... A

Actuatores

14

Introduccin
Sistemas de tiempo real
Interfaz

Sensores
S

Sistema de
tiempo real

Proceso

S
...
S

Sistemas Informticos de tiempo real.

A ... A Actuatores

15

Introduccin
Referencia r(t)

A/D
A/D

Controlador

r(k)

y(k)

Algoritmo
de control

Sistemas Informticos de tiempo real.

D/A

u(t)

y(t)

Sensor

u(k)

Proceso

Actuador

16

Introduccin

Interfaz

Sensores
S

Sistemas de tiempo real

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

Cada tarea en la aplicacin


tiene una estructura como:

Hardware
reference

task Controller
each Sample do
get_sensor (y);
determine_action(u);
send_action(u);
update(e,y,u,);
end do;
end task;

Sistemas Informticos de tiempo real.

18

Introduccin
Tareas

RTOS

Process_1

Process_2

Hardware
y1

u1 y2

Controller

Sistemas Informticos de tiempo real.

u2

y3

Controller

u3

y4

Controller

u4
Controller

19

Control digital
n

El periodo de muestreo es decisivo para el funcionamiento del regulador


digital:

Un periodo pequeo proporciona mejor control pero requiere ms


cmputo por unidad de tiempo (compromiso)
q En sistemas no lineales, puede ser necesario cambiar de
regulador en funcin de la frecuencia
Dos factores aconsejan reducir el periodo de muestreo:
q
q

Respuesta rpida a cambios en la referencia


Comportamiento dinmico de la planta

Sistemas Informticos de tiempo real.

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]

Sistemas Informticos de tiempo real.

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

Sistemas Informticos de tiempo real.

22

Modelo de tareas de tiempo real


La mayora de aplicaciones de los sistemas de tiempo real
son aplicaciones de control digital
Una planta real suele incorporar varios controladores:
Control de velocidad de rotacin de un motor
Control de su temperatura...
Cada variable a controlar requiere una frecuencia de
muestreo: sistemas multifrecuencia
Los periodos de muestreo en sistemas multifrecuencia suelen
ser armnicos
por simplicidad en la programacin y
por conveniencia en aprovechamiento del procesador
Aunque lo ms apropiado es que tenga cada uno su
frecuencia correspondiente.
Sistemas Informticos de tiempo real.

23

Modelo de tareas de tiempo real


Caractersticas de las tareas a ejecutar (carga):
Actividades principalmente peridicas
Periodos [milisegundos..varios segundos]
Varias leyes de control simultneas
El clculo correspondiente a un ciclo debe completarse
antes del inicio del ciclo siguiente: plazo
En sistemas cambiantes, afectados por ruido o no
totalmente conocidos, el filtrado y la estimacin de
parmetros de la planta incrementan notablemente el
nmero de clculos necesarios en cada periodo de
muestreo
Debe reaccionar ante estmulos externos asncronos
(alarmas, seales, etc.)
Sistemas Informticos de tiempo real.

24

Modelo de tareas de tiempo real


Tipos de tareas:
Peridicas: Se ejecutan a intervalos regulares. Las principales
caractersticas son: periodo y plazo. El modelo de tarea
peridico es un modelo muy conocido y para el cual se han
desarrollado varias extensiones.
No peridicas: Se ejecutan como consecuencia de la llegada
de un evento.
Pueden ser:
- Aperidicas : No tienen restricciones temporales
estrictas. Se quiere buen tiempo de respuesta. La llegada se
suele modelar mediante distrximoibuciones (Poisson)
- Espordicas: Tienen restricciones estrictas con un
mnimo tiempo de entre eventos consecutivos
Sistemas Informticos de tiempo real.

25

Modelo de tareas de tiempo real


Tareas periodicas
Una tarea periodica i = { Ji,1, Ji,2, ... , Ji,n } es una

secuencia de activaciones con parmetros idnticos:


periodo ( pi o Ti ) mnimo tiempo entre dos tiempos
de llegada consecutivos [(k-1) Pi, k Pi].
tiempo de ejecucin ( ei o Ci ) mximo tiempo de
ejecucin de cualquier activacin
fase ( fi ) tiempo de llegada de la primera ejecucin
en i.

Sistemas Informticos de tiempo real.

26

Modelo de tareas de tiempo real


Tareas periodicas

Sistemas Informticos de tiempo real.

27

Ejemplo de tareas Peridicas


Tarea Computo Periodo
T1
10
40
T2
20
70
T3
35
150
T4
30
250

Sistemas Informticos de tiempo real.

Plazo
40
70
150
250

Offset
0
0
0
0

28

Ejecucin de tareas

+Prioridad

T1:{100,20}
T2:{150,40}
T3:{300,100}

Planificacin basada en prioridades

T3
T2

-Prioridad

T1

50

100

150

200

Sistemas Informticos de tiempo real.

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

Sistemas Informticos de tiempo real.

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

Planificadores basados en prioridades


La planificacin requiere una asignacin a priori de la
importancia (prioridad) de las tareas.
Existe un planificador (basado en prioridades) que se
encarga de ejecutar en cada instante de tiempo aquella
tarea con la mayor importancia (prioridad)
Las tareas pueden ser expulsadas cuando una tarea de
mayor prioridad pasa a un estado de preparada

Tareas preparadas

CPU
En ejecucin

Sistemas Informticos de tiempo real.

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

Sistemas Informticos de tiempo real.

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

Sistemas Informticos de tiempo real.

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:

Requiere una interfaz de S.O. que le


suministre las abstracciones
main()
{
pthread_t Tarea1;
void control1(void) {
time_t next_time, init_time;
init_time = get_time;
while(1) {
-- acciones
next_time = next_time + Periodo;
diff = next_time get_time;
usleep (diff);
}
pthread_exit(0);
}

Cdigo del usuario

ejecutable

abstracciones
Tareas
comunicacin
Sincronizacin

Objetos protegidos
Acceso
a bajo nivel
.
Tolerancia a fallos

S.O.T.R

pthread_create( &Tarea1, NULL, (void*)& control1, NULL);


sleep (65);
}
Sistemas Informticos de tiempo real.

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;

Cdigo del usuario

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

task body Periodic_Task is


..
begin
..
end Periodic_Task;

Tipo tareas
Especificacin

task type Periodic_Task(Prio: Integer; Per, Plazo : miliSec) is


pragma Priority(Prio);
end Periodic_Task

Instanciacin

T1 : Periodic_task(Prio => 10, Periodo => 100, Plazo => 80);


T2: Periodic_task(12, 140, 140);

Implementacin

task body Periodic_Task is


..
begin
..
end Periodic_Task;

Sistemas Informticos de tiempo real.

38

Lenguajes de programacin
Creacin de tareas

C/POSIX

pthread_t Tarea1;
void control1(args) {
.
}
pthread_create( &Tarea1, NULL, (void*)& control1, &args);

Varias tareas de la misma caracterstica


pthread_t Tarea1[Max];
for (i = 1; i < N; i++) {
pthread_create( &Tarea1[i], NULL, (void*)& control1, &args);
}

Sistemas Informticos de tiempo real.

39

Tareas peridicas en Ada


La mejor solucin es utilizar
retardos absolutos
Periodo := ;
No puede evitarse la deriva
Siguiente:= Clock;
local, pero s la acumulacin de loop
error
--Tomar datos

ADA

--Calcular accin de control


--Actuacin
Siguiente := Siguiente + Periodo;
delay until Siguiente;
end loop;

Siguiente:=Clock+Periodo;

Siguiente:=Siguiente+Periodo; Siguiente:=Siguiente+Periodo;

delay until Siguiente;


Sistemas Informticos de tiempo real.

delay until Siguiente;

delay until Siguiente;

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

Ncleos de tiempo real y Sistemas


empotrados
n Conclusiones
n

Sistemas Informticos de tiempo real.

42

Sistemas Operativos de tiempo real


Requerimientos de los S.O.T.R.
Planificacin de procesos de tiempo real (expulsiva)
Garanta de respuesta a interrupciones
Prioridades fijas y dinmicas
Comunicacin sncrona y asncrona entre procesos
E/S de altas prestaciones
Mecanismos de control eficientes
Acceso a redes con protocolos deterministas

Ofrece comportamiento determinista

Latencia de la gestin de interrupciones garantizado


Cambio de contexto acotado
Overhead introducido por el planificador
Gestin del reloj/temporizadores
Tiempo de respuesta del hardware

Sistemas Informticos de tiempo real.

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

G. Tiempo Cambio de contexto

Manejadores de
dispositivo

interrupciones

Sistemas Informticos de tiempo real.

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

No tiene pantalla (visualizadores especializados)


Sin disco (sin sistema de ficheros)
Un solo usuario
requisitos de seguridad limitados
N. de tareas limitados
Interaccin controlada
Sistema cerrado

Sistemas Informticos de tiempo real.

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

Buscar en la web (wikipedia)


q
q
q

Sistemas de tiempo real (Real-Time computing)


Sistemas empotrados (Embedded systems)
Sistemas operativos de tiempo real (Real-time operating
systems)
Lenguaje Ada

Sistemas Informticos de tiempo real.

48

Potrebbero piacerti anche