Está en la página 1de 48

UNIVERSIDAD NACIONAL DE INGENIERA

FACULTAD DE INGENIERA MECNICA

DISEO DE SISTEMAS EN TIEMPO REAL (MT-325)

TEMA:
CAPTULO 1: INTRODUCCIN AL DISEO DE SISTEMAS EN
TIEMPO REAL
Subtitle
DOCENTE:
Ing. CIP Daniel Leonardo Barrera Esparta
I.- INTRODUCCIN

Objetivos:

Conocer los conceptos ms importantes relacionados con los sistemas en tiempo real (STR).
Conocer la problemtica del desarrollo de los sistemas de tiempo real
Examinar sus caractersticas ms importantes y verificar en los campos de aplicacin.
Conocer los mtodos y herramientas que se utilizan para disear, analizar y realizar STR.
Saber desarrollar aplicaciones con lenguajes apropiados.
Conocer la problemtica del sistema operativo y su influencia

Requisitos:
Programacin en lenguaje de alto nivel (C, Ada)
Sistemas Operativos.
Arquitectura de computadoras.
I.- INTRODUCCIN
Ejemplo1: Mars Pathfinder

El primer carro robot en descender a la superficie y desplazarse sobre Marte fue el "Sojourner".
Camin sobre la superficie de Marte el 6 de julio de 1997.

Gobernada por un procesador con sistema operativo en tiempo real VXWorks.


I.- INTRODUCCIN

Ejemplo1: Mars Pathfinder

Un nico procesador ejecuta varias tareas:

a.Tarea de alta prioridad que tiene que comprobar peridicamente que todo el sistema
funciona correctamente.
b.Tareas de media prioridad: adquisicin de imgenes, compresin de informacin, otros
subsistemas.
c.Tarea de baja prioridad manejando una estacin meteorolgica de la que hay que recabar
datos en intervalos relativamente grandes.

Tiene una regin crtica con la tarea de alta prioridad para el acceso a datos comunes, que caus
el fallo debido a una inversin de prioridad.
I.- INTRODUCCIN
Ejemplo1: Mars Pathfinder
I.- INTRODUCCIN

Ejemplo2: JERARQUA DE CONTROL DE VUELO


I.- INTRODUCCIN
Conceptos bsicos de Tiempo Real

Definicin para usuarios comunes


a.Proceso en el que el usuario no percibe el tiempo empleado en su ejecucin
b.Tipo de procesamiento en cual una transaccin es ejecutada y procesada sin espera alguna

Definicin para servidores, entornos de comunicacin


a.Rpida transmisin y proceso de datos orientados a eventos y transacciones a medida que se
producen

Definicin para procesamiento digital de seales


a.Un sistema de tiempo real es aquel capaz de procesar una muestra de seal antes de que
ingrese al sistema la siguiente muestra
I.- INTRODUCCIN

Que es un Sistema de Tiempo real ?

Un sistema de tiempo real es un sistema de procesamiento de informacin el cual tiene que


responder (en un perodo finito y especfico) a estmulos de entrada generados externamente

NO es sinnimo de inmediatez.
I.- INTRODUCCIN
Que es un Sistema de Tiempo real ?
Un sistema de tiempo real es un sistema informtico que:
Interacciona repetidamente con su entorno fsico
Responde a los estmulos que recibe de dicho entorno en un plazo de tiempo determinado
I.- INTRODUCCIN
Que es un Sistema de Tiempo real ?
Las respuestas correctas dependen no solo de los resultados lgicos sino tambin del
momento (tiempo) en que son entregadas (restriccin de tiempo).
Las fallas para responder a tiempo son tan malas como una mala respuesta.
I.- INTRODUCCIN
Significado de tiempo real

La reaccin de los sistemas a los eventos externos debe ocurrir durante su evolucin. Como
consecuencia, el tiempo del sistema (tiempo interno) debe medirse usando la misma escala
usada para medir el tiempo en el entorno controlado (tiempo externo).

Si en el sistema se incorporan eventos que evolucionan ms rpidamente que las acciones que
pueden manejarlos, entonces dichas acciones ya no sern efectivas.
I.- INTRODUCCIN

Ejemplo: Inyeccin de combustible

El sistema de control de inyeccin


de combustible en un motor
alternativo (presentes en autos)
debe realizar la inyeccin de la
mezcla dentro del intervalo de
tiempo marcado por la rotacin del
motor, de otro modo el motor no
funcionar correctamente.
I.- INTRODUCCIN
Restriccin Temporal
Si queremos controlar la velocidad de un motor sometido a una carga variable utilizando un
control PID.

El control PID es una funcin a la que se le pasan unos parmetros (velocidad actual del
motor) y retorna el valor de la seal de control que hay que aplicar al motor (la tensin con la
que hay que alimentar el motor)
I.- INTRODUCCIN

Restriccin Temporal
La teora supone que el tiempo de cmputo es despreciable, esto es, desde que se lee la
velocidad del motor hasta que se acta, pasa muy poco tiempo.

Normalmente se puede tolerar un cierto retraso. Una caracterstica es que el algoritmo PID se
tiene que ejecutar peridicamente. Si entre dos invocaciones consecutivas a la funcin PID
pasa demasiado tiempo, entonces el motor puede alcanzar una velocidad no deseada.

En resumen podemos considerar la funcin PID como un programa que se ha de ejecutar de


forma peridica (Ti); desde que la ponemos en ejecucin hasta que acaba, adems ha de estar
acotado por un tiempo mximo (Di) que viene impuesto por la teora de diseo del PID, y que el
cdigo PID emplea una cantidad de tiempo (Ci) en funcin de la velocidad del procesador
Ti: Periodo de la tarea i.
Di: Plazo de ejecucin (deadline) de la tarea i.
Ci: Tiempo de computo en el peor de los casos de la tarea i.
I.- INTRODUCCIN

Restriccin Temporal

Si el sistema est compuesto por una sola tarea, entonces no hay


problema de tiempo real. En caso de que el procesador no es lo
suficientemente rpido entonces simplemente se cambia de
procesador.

Los problemas de Tiempo Real aparecen cuando el sistema est


compuesto por varias tareas, y hay que repartir el procesador (o
procesadores) entre todas ellas.

Para ello no podemos utilizar un sistema clsico de tiempo


compartido como puede ser el utilizado por Linux con los procesos
normales, ni programas que requieran tiempo real en Windows.
I.- INTRODUCCIN
Restriccin Temporal
Se debe de usar un sistema operativo de tiempo real para garantizar que su tarea crtica se
ejecute de manera precisa en el horario establecido.

El sistema operativo de Windows esta diseado para ofrecer o compartir tiempo del procesador
a tareas que corren en el fondo (background).

Como en este caso el usuario tiene poco control sobre cmo el procesador comparte su tiempo,
Windows no es considerado un sistema operativo de tiempo real. De esta manera, tareas no
crticas (como un protector de pantalla o software de proteccin de virus) pueden interferir con
un proceso de tiempo crtico en LabVIEW por ejemplo, como una aplicacin de adquisicin de
datos o un lazo de control.
I.- INTRODUCCIN
Estructura de un STR tpico
I.- INTRODUCCIN
Necesidad de concurrencia en sistemas de tiempo real

Lo habitual es que un sistema de tiempo real tenga que realizar varias actividades de forma
concurrente

Por ejemplo, tareas en el controlador de un auto:


Medir la velocidad cada 200 ms
Controlar la inyeccin cada 40 ms
Control del ABS cada 80 ms

Para el programador resulta ms sencillo trabajar sobre cada una de las tareas de forma
independiente

El sistema operativo o el lenguaje de programacin proporcionar el soporte para que las tareas
se ejecuten de forma concurrente
I.- INTRODUCCIN
Requisitos funcionales
1.- Adquisicin de datos

a. Medida de variables
Cada variable pertenece a la etapa de control de un susbsistema
La imagen de una variable en el STR tiene un intervalo de validez
Las medidas pueden estar dirigidas por tiempo o por sucesos

b. Acondicionamiento de seales
Los datos brutos se filtran y convierten a unidades de ingeniera
Luego se analizan para obtener datos validados

c. Supervisin
Cuando algn dato tiene valores incorrectos se generan alarmas. Es importante identificar el
suceso original de una serie de alarmas encadenadas
I.- INTRODUCCIN
Requisitos funcionales
2. Control Digital

El sistema de tiempo real puede actuar sobre el sistema controlado para conseguir que tenga
un comportamiento determinado.

La accin de control es funcin de la desviacin entre los valores de referencia y los valores
medidos de las variables

El diseo de los algoritmos de control es un problema importante

El comportamiento es muy regular (muestreo peridico)


I.- INTRODUCCIN
Requisitos funcionales
3. Interaccin con personas

a. La interfaz de operador es muy importante


Una mala interfaz puede causar accidentes

b. Aspectos tpicos:
Presentacin de datos
Presentacin de alarmas
Presentacin de tendencias
Registro de datos
Generacin de informes
I.- INTRODUCCIN
I.- INTRODUCCIN
Caractersticas de un Sistema de Tiempo Real

1. Gran tamao y complejidad


Algunos STR tienen millones de lneas de cdigo.
La variedad de funciones aumenta la complejidad incluso en sistemas relativamente pequeos.

2. Simultaneidad de acciones (concurrencia)


Los dispositivos fsicos controlados funcionan al mismo tiempo.
Los componentes de software que los controlan actan concurrentemente

3.Interaccin con Dispositivos de entrada y salida especiales


Los manejadores de dispositivos forman parte del software de aplicacin
I.- INTRODUCCIN
Caractersticas de un Sistema de Tiempo Real

4. Seguridad y fiabilidad
En sistemas crticos: fallos con consecuencias graves
Prdida de vidas humanas
Prdidas econmicas
Daos medioambientales

5. Determinismo temporal
Acciones en intervalos de tiempo determinados
Es fundamental que el comportamiento temporal de los STR sea determinista
Tareas deben ser asignadas y terminadas antes de su plazo.
La ejecucin correcta no solo considera la lgica sino tambin el tiempo en que se producen los
resultados
I.- INTRODUCCIN
Caractersticas de un Sistema de Tiempo Real

Las aplicaciones que se ejecutan determinsticamente muchas veces realizan una tarea crtica
en iteraciones y estas iteraciones consumen siempre la misma cantidad de tiempo del
procesador.

De esta manera las aplicaciones determinsticas son apreciadas no tanto por su velocidad, sino
por su confiabilidad a responder con consistencia a entradas y generar salidas con muy poco
"parpadeo" o jitter. (Jitter es el trmino que se usa para identificar el promedio de las diferencias
en tiempo que le toma a un ciclo ejecutarse).
I.- INTRODUCCIN
Caractersticas de un Sistema de Tiempo Real
I.- INTRODUCCIN
Caractersticas de un Sistema de Tiempo Real

El cuatro de junio de 1996 el cohete Ariane 5 lanzado por la


Agencia Europea del Espacio (ESA) explot a los cuarenta
segundos de su despegue en Kourou, en la Guayana Francesa.
Era su primer viaje despus de una dcada de desarrollo y un
coste de siete mil millones de dlares de entonces.
El cohete mismo y su cargamento tenan un valor de 500
millones.
Era un cohete gigante, capaz de transportar y poner en
rbita un par de satlites de tres toneladas por cada
lanzamiento,
Ello otorgara a Europa una supremaca abrumadora en el
negocio espacial. Un error aritmtico provoc su destruccin.
I.- INTRODUCCIN
Caractersticas de un Sistema de Tiempo Real
A los 39 segundos del lanzamiento, cuando el cohete alcanz una altitud de dos millas y
media, el mecanismo de autodestruccin acab con el Ariane 5 y su carga de satlites
cientficos no asegurada.
La destruccin fue disparada porque las fuerzas aerodinmicas estaban rajando los
propulsores, pero haba empezado un instante antes, cuando la nave vir bruscamente en una
correccin de rumbo innecesaria.
La direccin es controlada por un sistema empotrado. Errneamente pens que el cohete iba
a la velocidad que no iba realmente.
Estos datos de velocidad los proporciona el dispositivo inercial de gua, tambin controlado
por software. Este dispositivo usa girscopos y acelermetros que monitorizan el movimiento.
El caso es que el sistema inercial debido al error de truncamiento enviaba datos absurdos,
pero datos al fin y al cabo.
I.- INTRODUCCIN
PREDECIBILIDAD

Una caracterstica distintiva de un sistema en tiempo real es la predecibilidad. La cual implica


que debe ser posible demostrar o comprobar a priori que los requerimientos de tiempos se
cumplen en cualquier circunstancia.
Como consecuencia, la predecibilidad implica:

Una cuidadosa planificacin de tareas y recursos.


Cumplimiento predecible de requisitos temporales: determinismo.
Anticipacin a fallos, y sus requerimientos temporales.
Consideraciones de sobrecargas: degradacin controlada.
Consideraciones de elementos de impredecibilidad.
I.- INTRODUCCIN
CONCURRENCIA Y PLANIFICACIN
Los conceptos de concurrencia y planificacin adquieren en los STR incluso mayor
protagonismo que en los Sist. de Tiempo Comp

Cada estmulo del entorno activa una o ms tareas. Una tarea es una secuencia de
instrucciones que ejecuta en concurrencia con otras tareas.
I.- INTRODUCCIN
CONCURRENCIA Y PLANIFICACIN

1.Garanta de plazos. Un STR funciona correctamente cuando los plazos de todas las tareas
estn garantizados. En contraste, en un STC, lo importante es asegurar un flujo lo ms elevado
posible.
En un STR la planificacin de las tareas concurrentes debe asegurar propiedades que no se
exigen en los Sistemas de Tiempo Compartido

2.Estabilidad. En caso de una sobrecarga del STR, se debe garantizar que al menos un
subconjunto de tareas crticas cumplen sus plazos. En un STC, el criterio es asegurar la equidad
del tiempo de ejecucin.

3.Tiempo de respuesta mximo. En un STR se trata de acotar el tiempo de respuesta en el


peor caso de todas las tareas. En un STC se trata de minimizar el tiempo de respuesta medio.
I.- INTRODUCCIN
TIPO DE TAREAS

Los STR pueden clasificarse en:

Tareas Tiempo Crtico(Tiempo Real Duro- Hard Real-Time )


Las tareas deben completarse antes de su plazo de respuesta. El incumplimiento de un plazo
puede producir perdidas humanas o graves perdidas materiales. Ejemplo: Sistema de frenado
de un automvil, la inyeccin de combustible en el motor de un avin

Tareas Acriticas (Tiempo Real Blando- Soft Real-Time )


Las tareas deben completarse tan pronto como sea posible. Se puede tolerar que
ocasionalmente se incumpla un plazo de respuesta. Ejemplo: la descompresin y visualizacin
de un fichero mpeg. Aqu sencillamente se tiene una degradacin de la calidad del sistema (la
imagen se queda congelada o se pierde algn fotograma).
I.- INTRODUCCIN
TAREAS PERIDICAS

Reiniciacin peridica de tareas, cada instancia debe completar antes de su plazo.


Por ejemplo, un controlador debe estar controlando 10 veces por segundo la presin de gas
en un tanque.
I.- INTRODUCCIN
TAREAS APERIDICAS

Se activan una sola vez, ejemplos: Disparar un misil y verificar el blanco. Una falla de energa en
el sistema debe provocar una interrupcin la cual debe ser procesada por el sistema
I.- INTRODUCCIN
Ventajas de desarrollo de aplicaciones Multitarea frente a Monotarea

Proteccin de memoria: si en un proceso se accede fuera de su memoria asignada, no


modifica datos en otro proceso.

Si el algoritmo de un proceso no es correcto, no afecta a la ejecucin de los dems procesos


salvo sincronizaciones.
Se pueden ejecutar varios procesos en computadores diferentes conectados mediante algn
tipo de canal de comunicacin.
Los procesos pueden lanzarse y detenerse individualmente, facilitando escalabilidad de
aplicaciones.
Implican una divisin de tareas adecuada para coordinacin de trabajos entre varios
programadores.
Simplifican el cdigo de las aplicaciones cuando stas tienen que atender a varios dispositivos
y tareas diferentes.
II.- DISEO DE SISTEMAS EN TIEMPO REAL
Diseo de un Sistema de tiempo real

El diseo de un sistema de tiempo real pasa por varias fases.


Primero se identifican las tareas a realizar y las restricciones temporales que deben cumplir;
Luego se escriben los programas que ejecutarn las tareas;
Despus se mide el tiempo de cmputo de cada tarea y se realiza un anlisis de
planificabilidad. El anlisis de planificabilidad consiste en aplicar unas pruebas al conjunto de
tareas de tal forma que si stas pasan el test entonces se puede garantizar que ninguna tarea
perder su plazo de ejecucin. Si no pasan el test entonces se tiene que volver al principio y
empezar de nuevo, utilizando otro procesador ms potente o utilizando otros algoritmos para
implementar las tareas.
Resumiendo: Las tareas se modelan con tres nmeros: T, D y C. El objetivo del sistema es
garantizar que todas las tareas (en todas sus activaciones) cumplan sus plazos de ejecucin. La
forma de conseguirlo es teniendo un sistema predecible.
II.- DISEO DE SISTEMAS EN TIEMPO REAL
Planificacin : Tecnologa que permite dar garantas de ejecucin al STR

Problema
Un conjunto de procesos requieren el acceso a un recurso compartido: Procesador, medio de
comunicacin, dispositivos.
Si no existe contencin suficiente:
Todos los procesos comparten adecuadamente el recurso
Si existe algn grado de contencin en el sistema:
Diseo: quien obtiene que prioridades, y cuando ?
Cmo se asigna el acceso a los recursos compartidos ?
Problemas de concurrencia
II.- DISEO DE SISTEMAS EN TIEMPO REAL
Planificacin vs. Planificabilidad

Planificacin : enfoque para dar


prioridad a una tarea sobre otra.

Planificabilidad : anlisis formal que


permite garantizar que un conjunto
de tarea peridicas pueden (o no)
ser asignadas a un recurso
compartido (p.ej. el procesador) tal
que cada una de las tareas cumpla
con su plazo de respuesta.
II.- DISEO DE SISTEMAS EN TIEMPO REAL
Caracterizacin de la Aplicacin
II.- DISEO DE SISTEMAS EN TIEMPO REAL
Caracterizacin de la Aplicacin

1. Restricciones de Funcionamiento.

Componentes: tanque, sensores, actuadores, interfaces A/D y computadora.

En el sistema (planta), dada una u(t), se produce una y(t).

El sistema recibe una seal de referencia r(t), el cual indica la temperatura deseada.

El objetivo del sistema de control es que y(t), sea lo mas parecida a r(t).

Para lograr el objetivo, es preciso aplicar a la planta la seal u(t) y(t) muestra el valor real de la
temperatura del termo.
II.- DISEO DE SISTEMAS EN TIEMPO REAL
Caracterizacin de la Aplicacin

2. Restricciones de Tiempos:

Tiempos de cmputo.
Periodos de muestreo.
Tiempos de acceso a los dispositivos (sensores actuadores)
Plazos de Respuesta.
Anlisis de Planificacin.
Planificar el sistema con un Sistema Operativo.
Los tiempos hay que obtenerlos, ya sea mediante mediciones instruccin por instruccin,
mediante analizadores lgicos o osciloscopios digitales.
El periodo de muestreo y el plazo de respuesta dependen de la aplicacin.
Se trata de asegurar que:
II.- DISEO DE SISTEMAS EN TIEMPO REAL
Caracterizacin de la Aplicacin

2. Restricciones de Tiempos:
II.- DISEO DE SISTEMAS EN TIEMPO REAL
Tipos de Planificacin

Planificacin Esttica
Estimacin a-priori de las restricciones temporales de todas las tareas del sistema
Opera sobre un conjunto de tareas no necesariamente estticas
Asignacin esttica de prioridades:

Tabla esttica.
Asignacin de prioridades estticas.

Planificacin Dinmica
Los parmetros de las tareas (C,T,D) no son conocidas a priori
Las tareas pueden arribar en forma dinmica. De la misma forma las prioridades de las tareas se
asigna durante la ejecucin.
No puede dar garanta de cumplimiento de plazos a priori
II.- DISEO DE SISTEMAS EN TIEMPO REAL
Aplicaciones de los Sistemas en Tiempo Real
Dominio Industrial
Controlador de la planta
Robot para tratamiento de material peligroso

Uso militar
Sistema de reconocimiento de blancos automtico
Sistema de guiado de misiles y navegacin

Sistemas altamente crticos


Plantas nucleares
Sistemas de avinica

Sistemas de Telecomunicaciones
Sistemas Multimedia
Sistemas de Telefona Mvil
II.- DISEO DE SISTEMAS EN TIEMPO REAL
Consideraciones de Diseo de un STR

A quien afecta la introduccin de Tiempo Real ?.


A los lenguajes, compiladores.
Al sistema operativo.
A la arquitectura de hardware.
A la metodologa de diseo.

En Tiempo Real se debe contemplar tanto el Hardware y el Software (SO + Aplicaciones)

Requisitos de Hardware
Interfaces eficientes de E/S
Sistema de interrupciones
Clculo de nmeros reales
Relojes en tiempo real
Proteccin de memoria
II.- DISEO DE SISTEMAS EN TIEMPO REAL
Consideraciones de Diseo de un STR Consideraciones de Diseo de un STR
Requisitos del sistema operativo Caractersticas de los lenguajes en tiempo real
Concurrencia
Mecanismos de medicin del tiempo Concurrencia
Planificacin de tareas para tiempo real Control de tiempo
Acceso a interfaces Planificacin de la ejecucin de tareas
Gestin eficiente de interrupciones Comunicacin con dispositivos hardware
Mecanismo para la portabilidad Control de errores y situaciones excepcionales

Requisitos del lenguaje de programacin


Concurrencia
Manejo de excepciones
Mecanismos de medicin del tiempo
Acceso a interfaces
Gestin de interrupciones
Portabilidad
II.- DISEO DE SISTEMAS EN TIEMPO REAL
SO's: Hard Real-Time vs. Soft Real-Time
III.- BIBLIOGRAFA

Burns-Alan-Sistemas-de-Tiempo-Real-Lenguajes-Programacion

Hermann Kopetz RT Systems Desig Principles for Distributed Embedded Applications

Real_Time_Systems_-_Design_Principles_for_Distributed_Embedded_Applications_--
_Hermann_Kope

real_time_systems_design_and_analysis_4th_edition PHILLIP A. LAPLANTE


SEPPO J. OVASKA