Desarrollo de sistemas en tiempo real

24
DESARROLLO DE SISTEMAS EN TIEMPO REAL (SRT) ING. LEONARDO TORRES ARGOMEDO

Transcript of Desarrollo de sistemas en tiempo real

DESARROLLO DE SISTEMAS EN TIEMPO REAL (SRT)ING. LEONARDO TORRES ARGOMEDO

UNIDAD DE APRENDIZAJE I: FUNDAMENTOS DE LOS SISTEMAS EN TIEMPO REAL.

INTRODUCCIÓN A LOS SISTEMAS EN TIEMPO REAL.

Un sistema de tiempo real es un sistema informático que realiza las siguientes tareas:

• Interacciona repetidamente con su entorno físico.

• Responde a los estímulos que recibe del mismo dentro de un plazo de tiempo determinado

• 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.

• Los sistemas en tiempo real suelen estar integrados en un sistema de ingeniería más general, en el que realizan funciones de control y/o monitorización, denominados SISTEMAS EMPOTRADOS (embedded systems).

• Un sistema empotrado es un sistema informático (hardware + software) de tiempo real integrado en un sistema de ingeniería más general, en el que realiza funciones de control, procesamiento y/o monitorización.

• Muchos sistemas de uso común en la industria, el transporte, las comunicaciones y el hogar tienen computadores empotrados:

• Aviones.

• Trenes.

• Coches.

• teléfonos móviles.

• Televisores.

• GPS.

• etc.

CLASES DE SISTEMAS DE TIEMPO REAL:

Críticos (hard real-time systems):

• Los plazos de respuesta deben respetarse siempre estrictamente.

•Una sola respuesta tardía a un suceso externo puede tener consecuencias fatales.

Acríticos (soft real-time systems):

• Se pueden tolerar retrasos ocasionales en la respuesta a un suceso.

TAREAS DE TIEMPO REAL

Las actividades de un sistema de tiempo real se llaman tareas.

Tienen varios tipos de propiedades:

• Funcionales: que hacen

• Temporales: cuando lo hacen

• Fiabilidad, seguridad, etc.

El comportamiento temporal de las tareas se especifica mediante sus atributos temporales

• Cuando se ejecutan: esquema de activación.

• Que plazo tienen para ejecutar cada acción.

CARACTERÍSTICAS DE LOS STR

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.

Simultaneidad de acciones (concurrencia)

• Los dispositivos físicos controlados funcionan al mismo tiempo.

• Las tareas que los controlan actúan concurrentemente.

Seguridad y fiabilidad

• Sistemas críticos: fallos con consecuencias graves.

• Pérdida de vidas humanas.

• Perdidas económicas.

• Daños medioambientales.

Dispositivos de entrada y salida especiales

• Los manejadores de dispositivos forman parte del software de aplicación.

• Los sistemas empotrados interaccionan con su entorno mediante diversos tipos de dispositivos que normalmente no son convencionales (teclados, impresoras, ...): convertidores A/D y D/A, entradas y salidas digitales, ... (interfaces con sensores, actuadores, periféricos especiales, ...)

• Los componentes del software que controlan el funcionamiento de estos dispositivos (manejadores, "drivers") son, en general, dependientes del sistema concreto.

Determinismo temporal:

• Acciones en intervalos de tiempo determinados.

• Es fundamental que el comportamiento temporal de los STR sea determinista o, al menos, previsible.

• No hay que confundirlo con la necesidad de que sea eficiente.

• El sistema debe responder correctamente en todas las situaciones

• En los sistemas de tiempo real estricto hay que prever el comportamiento en el peor caso posible.

• Los sistemas de tiempo real controlan actividades del mundo exterior que son simultáneas.

• Para ello deben ejecutar varias tareas en paralelo (concurrentemente).

• La ejecución de las tareas se multiplexa en el tiempo en uno o varios procesadores.

PROGRAMACIÓN

Actualmente existen dos alternativas:

Lenguajes secuenciales (C, C++, ...) + sistema operativo de tiempo real.

• Los lenguajes secuenciales dependen de un sistema operativo para las funciones de concurrencia y temporización.

Lenguajes concurrentes (Ada, extensión tiempo real Java...)

• Las funciones de concurrencia y tiempo real forman parte del lenguaje

SISTEMAS OPERATIVOS DE TIEMPO REAL (SOTR)Los sistemas operativos convencionales no son adecuados para tiempo real:

• No tienen comportamiento determinista.

• No permiten garantizar los tiempos de respuesta.

Un sistema operativo de tiempo real debe soportar:

• Concurrencia: procesos ligeros con memoria común

• Temporización: medida de tiempos y ejecución periódica

• Planificación: expulsiva con prioridades, y acceso a recursos con herencia de prioridad

• Manejo de dispositivos E/S: acceso a recursos de hardware e interrupciones.

Ejemplos: VxWorks, Lynx OS, QNX, RTEMS, MarteOS, RT-Linux, Spectra, Solaris, …

Por lo regular Sistema Operativo de tiempo real suele tener la misma arquitectura que un Sistema Operativo convencional, pero su diferencia radica en que proporciona mayor prioridad a los elementos de control y procesamiento que son utilizados para ejecutar los procesos o tareas.

• El SOTR debe ser multitarea y permisible

• Un SOTR debe poder asignar prioridades a las tareas

• El SOTR debe proporcionar medios de comunicación y sincronización entre tareas

• Un SOTR debe poder evitar el problema de inversión de prioridades

• El comportamiento temporal del SOTR debe ser conocido

CLASIFICACIÓN DE LOS SISTEMAS DE TIEMPO REAL

• Los sistemas de tiempo real pueden ser de dos tipos, esto es en función de su severidad en el tratamiento de los errores que puedan presentarse:

• Sistemas de tiempo real blandos o Soft real-time systems: estos pueden tolerar un exceso en el tiempo de respuesta, con una penalización por el incumplimiento del plazo. Estos sistemas garantizan que las tareas críticas se ejecutan en tiempo. Aquí los datos son almacenados en memorias no volátiles, no utilizan técnicas de memoria virtual ni tiempo compartido, estas técnicas no pueden ser implementadas en hardware.

• Sistemas de tiempo real duros o Hard real-time systems: aquí la respuesta fuera de término no tiene valor alguno, y produce la falla del sistema. Estos sistemas tienen menos utilidades que los implementados por hard, por ejemplo no pueden utilizarse para control industrial y robótico. Pero si para multimedia, supervisión de controles industriales y realidad virtual.

POSIX

Portable Operating System Interface + X

• Conjunto de normas IEEE/ISO que definen servicios que pueden ofrecer los sistemas operativos de tiempo real.

• Normas básicas, con interfaces para C.

• Interfaces para Ada y otros lenguajes.

• Perfiles de aplicación.