Está en la página 1de 48

UNIVERSIDAD NACIONAL DE INGENIERÍA

FACULTAD DE INGENIERÍA MECÁNICA

DISEÑO DE SISTEMAS EN TIEMPO REAL (MT-325)

TEMA:
“CAPÍTULO 1: INTRODUCCIÓN AL DISEÑO DE SISTEMAS EN
TIEMPO REAL”
Subtitle
DOCENTE:
Ing. CIP Daniel Leonardo Barrera Esparta
I.- INTRODUCCIÓN

Objetivos:

•Conocer los conceptos más importantes relacionados con los sistemas en tiempo real (STR).
•Conocer la problemática del desarrollo de los sistemas de tiempo real
•Examinar sus características más importantes y verificar en los campos de aplicación.
•Conocer los métodos y herramientas que se utilizan para diseñar, analizar y realizar STR.
•Saber desarrollar aplicaciones con lenguajes apropiados.
•Conocer la problemática del sistema operativo y su influencia

Requisitos:
•Programación en lenguaje de alto nivel (C, Ada)
•Sistemas Operativos.
•Arquitectura de computadoras.
I.- INTRODUCCIÓN
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.- INTRODUCCIÓN

Ejemplo1: Mars Pathfinder

Un único procesador ejecuta varias tareas:

a.Tarea de alta prioridad que tiene que comprobar periódicamente que todo el sistema
funciona correctamente.
b.Tareas de media prioridad: adquisición de imágenes, compresión de información, otros
subsistemas.
c.Tarea de baja prioridad manejando una estación meteorológica de la que hay que recabar
datos en intervalos relativamente grandes.

Tiene una región crítica con la tarea de alta prioridad para el acceso a datos comunes, que causó
el fallo debido a una inversión de prioridad.
I.- INTRODUCCIÓN
Ejemplo1: Mars Pathfinder
I.- INTRODUCCIÓN

Ejemplo2: JERARQUÍA DE CONTROL DE VUELO


I.- INTRODUCCIÓN
Conceptos básicos de Tiempo Real

Definición para usuarios “comunes”


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

Definición para servidores, entornos de comunicación


a.Rápida transmisión y proceso de datos orientados a eventos y transacciones a medida que se
producen

Definición para procesamiento digital de señales


a.Un sistema de tiempo real es aquel capaz de procesar una muestra de señal antes de que
ingrese al sistema la siguiente muestra
I.- INTRODUCCIÓN

Que es un Sistema de Tiempo real ?

Un sistema de tiempo real es un sistema de procesamiento de información el cual tiene que


responder (en un período finito y específico) a estímulos de entrada generados externamente

NO es sinónimo de inmediatez.
I.- INTRODUCCIÓN
Que es un Sistema de Tiempo real ?
Un sistema de tiempo real es un sistema informático que:
• Interacciona repetidamente con su entorno físico
• Responde a los estímulos que recibe de dicho entorno en un plazo de tiempo determinado
I.- INTRODUCCIÓN
Que es un Sistema de Tiempo real ?
• Las respuestas correctas dependen no solo de los resultados lógicos sino también del
momento (tiempo) en que son entregadas (restricción de tiempo).
• Las fallas para responder a tiempo son tan malas como una mala respuesta.
I.- INTRODUCCIÓN
Significado de tiempo real

La reacción de los sistemas a los eventos externos debe ocurrir durante su evolución. 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 más rápidamente que las acciones que
pueden manejarlos, entonces dichas acciones ya no serán efectivas.
I.- INTRODUCCIÓN

Ejemplo: Inyección de combustible

El sistema de control de inyección


de combustible en un motor
alternativo (presentes en autos)
debe realizar la inyección de la
mezcla dentro del intervalo de
tiempo marcado por la rotación del
motor, de otro modo el motor no
funcionará correctamente.
I.- INTRODUCCIÓN
Restricción Temporal
• Si queremos controlar la velocidad de un motor sometido a una carga variable utilizando un
control PID.

• El control PID es una función a la que se le pasan unos parámetros (velocidad actual del
motor) y retorna el valor de la señal de control que hay que aplicar al motor (la tensión con la
que hay que alimentar el motor)
I.- INTRODUCCIÓN

Restricción Temporal
• La teoría supone que el tiempo de cómputo es despreciable, esto es, desde que se lee la
velocidad del motor hasta que se actúa, pasa muy poco tiempo.

• Normalmente se puede tolerar un cierto retraso. Una característica es que el algoritmo PID se
tiene que ejecutar periódicamente. Si entre dos invocaciones consecutivas a la función PID
pasa demasiado tiempo, entonces el motor puede alcanzar una velocidad no deseada.

En resumen podemos considerar la función PID como un programa que se ha de ejecutar de


forma periódica (Ti); desde que la ponemos en ejecución hasta que acaba, además ha de estar
acotado por un tiempo máximo (Di) que viene impuesto por la teoría de diseño del PID, y que el
código PID emplea una cantidad de tiempo (Ci) en función de la velocidad del procesador
Ti: Periodo de la tarea i.
Di: Plazo de ejecución (deadline) de la tarea i.
Ci: Tiempo de computo en el peor de los casos de la tarea i.
I.- INTRODUCCIÓN

Restricción 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 rápido 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 clásico de tiempo


compartido como puede ser el utilizado por Linux con los procesos
normales, ni programas que requieran tiempo real en Windows.
I.- INTRODUCCIÓN
Restricción Temporal
•Se debe de usar un sistema operativo de tiempo real para garantizar que su tarea crítica se
ejecute de manera precisa en el horario establecido.

•El sistema operativo de Windows esta diseñado 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 cómo el procesador comparte su tiempo,
Windows no es considerado un sistema operativo de tiempo real. De esta manera, tareas no
críticas (como un protector de pantalla o software de protección de virus) pueden interferir con
un proceso de tiempo crítico en LabVIEW por ejemplo, como una aplicación de adquisición de
datos o un lazo de control.
I.- INTRODUCCIÓN
Estructura de un STR típico
I.- INTRODUCCIÓN
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 inyección cada 40 ms
✓ Control del ABS cada 80 ms

•Para el programador resulta más sencillo trabajar sobre cada una de las tareas de forma
independiente

•El sistema operativo o el lenguaje de programación proporcionará el soporte para que las tareas
se ejecuten de forma concurrente
I.- INTRODUCCIÓN
Requisitos funcionales
1.- Adquisición 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 señales
•Los datos brutos se filtran y convierten a unidades de ingeniería
•Luego se analizan para obtener datos validados

c. Supervisión
•Cuando algún dato tiene valores incorrectos se generan alarmas. Es importante identificar el
suceso original de una serie de alarmas encadenadas
I.- INTRODUCCIÓN
Requisitos funcionales
2. Control Digital

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

•La acción de control es función de la desviación entre los valores de referencia y los valores
medidos de las variables

•El diseño de los algoritmos de control es un problema importante

•El comportamiento es muy regular (muestreo periódico)


I.- INTRODUCCIÓN
Requisitos funcionales
3. Interacción con personas

a. La interfaz de operador es muy importante


•Una mala interfaz puede causar accidentes

b. Aspectos típicos:
•Presentación de datos
•Presentación de alarmas
•Presentación de tendencias
•Registro de datos
•Generación de informes
I.- INTRODUCCIÓN
I.- INTRODUCCIÓN
Características de un Sistema de Tiempo Real

1. Gran tamaño y complejidad


Algunos STR tienen millones de líneas de código.
La variedad de funciones aumenta la complejidad incluso en sistemas relativamente pequeños.

2. Simultaneidad de acciones (concurrencia)


Los dispositivos físicos controlados funcionan al mismo tiempo.
Los componentes de software que los controlan actúan concurrentemente

3.Interacción con Dispositivos de entrada y salida especiales


Los manejadores de dispositivos forman parte del software de aplicación
I.- INTRODUCCIÓN
Características de un Sistema de Tiempo Real

4. Seguridad y fiabilidad
En sistemas críticos: fallos con consecuencias graves
✓ Pérdida de vidas humanas
✓ Pérdidas económicas
✓ Daños 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 ejecución correcta no solo considera la lógica sino también el tiempo en que se producen los
resultados
I.- INTRODUCCIÓN
Características de un Sistema de Tiempo Real

•Las aplicaciones que se ejecutan determinísticamente muchas veces realizan una tarea crítica
en iteraciones y estas iteraciones consumen siempre la misma cantidad de tiempo del
procesador.

•De esta manera las aplicaciones determinísticas 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 término que se usa para identificar el promedio de las diferencias
en tiempo que le toma a un ciclo ejecutarse).
I.- INTRODUCCIÓN
Características de un Sistema de Tiempo Real
I.- INTRODUCCIÓN
Características 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 después de una década de desarrollo y un
coste de siete mil millones de dólares de entonces.
•El cohete mismo y su cargamento tenían un valor de 500
millones.
•Era un cohete gigante, capaz de transportar y poner en
órbita un par de satélites de tres toneladas por cada
lanzamiento,
•Ello otorgaría a Europa una supremacía abrumadora en el
negocio espacial. Un error aritmético provocó su destrucción.
I.- INTRODUCCIÓN
Características 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 autodestrucción acabó con el Ariane 5 y su carga de satélites
científicos no asegurada.
•La destrucción fue disparada porque las fuerzas aerodinámicas estaban rajando los
propulsores, pero había empezado un instante antes, cuando la nave viró bruscamente en una
corrección de rumbo innecesaria.
•La dirección es controlada por un sistema empotrado. Erróneamente pensó que el cohete iba
a la velocidad que no iba realmente.
•Estos datos de velocidad los proporciona el dispositivo inercial de guía, también controlado
por software. Este dispositivo usa giróscopos y acelerómetros 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.- INTRODUCCIÓN
PREDECIBILIDAD

• Una característica 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 planificación de tareas y recursos.


✓ Cumplimiento predecible de requisitos temporales: determinismo.
✓ Anticipación a fallos, y sus requerimientos temporales.
✓ Consideraciones de sobrecargas: degradación controlada.
✓ Consideraciones de elementos de impredecibilidad.
I.- INTRODUCCIÓN
CONCURRENCIA Y PLANIFICACIÓN
• Los conceptos de concurrencia y planificación adquieren en los STR incluso mayor
protagonismo que en los Sist. de Tiempo Comp

• Cada estímulo del entorno activa una o más tareas. Una tarea es una secuencia de
instrucciones que ejecuta en concurrencia con otras tareas.
I.- INTRODUCCIÓN
CONCURRENCIA Y PLANIFICACIÓN

1.Garantía de plazos. Un STR funciona correctamente cuando los plazos de todas las tareas
están garantizados. En contraste, en un STC, lo importante es asegurar un flujo lo más elevado
posible.
En un STR la planificación 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 críticas cumplen sus plazos. En un STC, el criterio es asegurar la equidad
del tiempo de ejecución.

3.Tiempo de respuesta máximo. 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.- INTRODUCCIÓN
TIPO DE TAREAS

Los STR pueden clasificarse en:

Tareas Tiempo Crítico(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 automóvil, la inyección de combustible en el motor de un avión

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 descompresión y visualización
de un fichero mpeg. Aquí sencillamente se tiene una degradación de la calidad del sistema (la
imagen se queda congelada o se pierde algún fotograma).
I.- INTRODUCCIÓN
TAREAS PERIÓDICAS

• Reiniciación periódica de tareas, cada instancia debe completar antes de su plazo.


• Por ejemplo, un controlador debe estar controlando 10 veces por segundo la presión de gas
en un tanque.
I.- INTRODUCCIÓN
TAREAS APERIÓDICAS

Se activan una sola vez, ejemplos: Disparar un misil y verificar el blanco. Una falla de energía en
el sistema debe provocar una interrupción la cual debe ser procesada por el sistema
I.- INTRODUCCIÓN
Ventajas de desarrollo de aplicaciones Multitarea frente a Monotarea

Protección 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 ejecución de los demás procesos


salvo sincronizaciones.
•Se pueden ejecutar varios procesos en computadores diferentes conectados mediante algún
tipo de canal de comunicación.
•Los procesos pueden lanzarse y detenerse individualmente, facilitando escalabilidad de
aplicaciones.
•Implican una división de tareas adecuada para coordinación de trabajos entre varios
programadores.
•Simplifican el código de las aplicaciones cuando éstas tienen que atender a varios dispositivos
y tareas diferentes.
II.- DISEÑO DE SISTEMAS EN TIEMPO REAL
Diseño de un Sistema de tiempo real

•El diseño 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 ejecutarán las tareas;
•Después se mide el tiempo de cómputo de cada tarea y se realiza un análisis de
planificabilidad. El análisis 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 ejecución. Si no pasan el test entonces se tiene que volver al principio y
empezar de nuevo, utilizando otro procesador más potente o utilizando otros algoritmos para
implementar las tareas.
•Resumiendo: Las tareas se modelan con tres números: T, D y C. El objetivo del sistema es
garantizar que todas las tareas (en todas sus activaciones) cumplan sus plazos de ejecución. La
forma de conseguirlo es teniendo un sistema predecible.
II.- DISEÑO DE SISTEMAS EN TIEMPO REAL
Planificación : Tecnología que permite dar garantías de ejecución al STR

Problema
•Un conjunto de procesos requieren el acceso a un recurso compartido: Procesador, medio de
comunicación, dispositivos.
•Si no existe contención suficiente:
✓ Todos los procesos comparten adecuadamente el recurso
•Si existe algún grado de contención en el sistema:
✓ Diseño: quien obtiene que prioridades, y cuando ?
✓ Cómo se asigna el acceso a los recursos compartidos ?
✓ Problemas de concurrencia
II.- DISEÑO DE SISTEMAS EN TIEMPO REAL
Planificación vs. Planificabilidad

Planificación : enfoque para dar


prioridad a una tarea sobre otra.

Planificabilidad : análisis formal que


permite garantizar que un conjunto
de tarea periódicas 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.- DISEÑO DE SISTEMAS EN TIEMPO REAL
Caracterización de la Aplicación
II.- DISEÑO DE SISTEMAS EN TIEMPO REAL
Caracterización de la Aplicación

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 señal 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 señal u(t) y(t) muestra el valor real de la
temperatura del termo.
II.- DISEÑO DE SISTEMAS EN TIEMPO REAL
Caracterización de la Aplicación

2. Restricciones de Tiempos:

✓ Tiempos de cómputo.
✓ Periodos de muestreo.
✓ Tiempos de acceso a los dispositivos (sensores actuadores)
✓ Plazos de Respuesta.
✓ Análisis de Planificación.
✓ Planificar el sistema con un Sistema Operativo.
•Los tiempos hay que obtenerlos, ya sea mediante mediciones instrucción por instrucción,
mediante analizadores lógicos o osciloscopios digitales.
•El periodo de muestreo y el plazo de respuesta dependen de la aplicación.
•Se trata de asegurar que:
II.- DISEÑO DE SISTEMAS EN TIEMPO REAL
Caracterización de la Aplicación

2. Restricciones de Tiempos:
II.- DISEÑO DE SISTEMAS EN TIEMPO REAL
Tipos de Planificación

Planificación Estática
Estimación a-priori de las restricciones temporales de todas las tareas del sistema
Opera sobre un conjunto de tareas no necesariamente estáticas
Asignación estática de prioridades:

✓ Tabla estática.
✓ Asignación de prioridades estáticas.

Planificación Dinámica
Los parámetros de las tareas (C,T,D) no son conocidas a priori
Las tareas pueden arribar en forma dinámica. De la misma forma las prioridades de las tareas se
asigna durante la ejecución.
No puede dar garantía de cumplimiento de plazos a priori
II.- DISEÑO 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 automático
• Sistema de guiado de misiles y navegación

Sistemas altamente críticos


Plantas nucleares
Sistemas de aviónica

Sistemas de Telecomunicaciones
Sistemas Multimedia
Sistemas de Telefonía Móvil
II.- DISEÑO DE SISTEMAS EN TIEMPO REAL
Consideraciones de Diseño de un STR

• A quien afecta la introducción de Tiempo Real ?.


• A los lenguajes, compiladores.
• Al sistema operativo.
• A la arquitectura de hardware.
• A la metodología de diseño.

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
• Cálculo de números reales
• Relojes en tiempo real
• Protección de memoria
II.- DISEÑO DE SISTEMAS EN TIEMPO REAL
Consideraciones de Diseño de un STR Consideraciones de Diseño de un STR
Requisitos del sistema operativo Características de los lenguajes en tiempo real
• Concurrencia
• Mecanismos de medición del tiempo • Concurrencia
• Planificación de tareas para tiempo real • Control de tiempo
• Acceso a interfaces • Planificación de la ejecución de tareas
• Gestión eficiente de interrupciones • Comunicación con dispositivos hardware
• Mecanismo para la portabilidad • Control de errores y situaciones excepcionales

Requisitos del lenguaje de programación


• Concurrencia
• Manejo de excepciones
• Mecanismos de medición del tiempo
• Acceso a interfaces
• Gestión de interrupciones
• Portabilidad
II.- DISEÑO DE SISTEMAS EN TIEMPO REAL
SO's: Hard Real-Time vs. Soft Real-Time
III.- BIBLIOGRAFÍA

• 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

También podría gustarte