j. a. stankovic, misconceptions about real-time … · control de motores del automóvil, comando y...

25
J. A. Stankovic, Misconceptions about Real-Time Computing: A Serious Problem for Next Generation Systems, IEEE Computer, October 1988. Un importante problema para sistemas de la nueva generación

Upload: phamque

Post on 27-Jul-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

J. A. Stankovic, Misconceptions about Real-Time Computing: A SeriousProblem for Next Generation Systems, IEEE Computer, October 1988.

Un importante problema para sistemas de la nueva generación

Manifestar y entonces disipar los conceptos equivocados más comunes acerca de

la computación de tiempo real.

Discutir los asuntos científicos fundamentales de computación de tiempo real

Promover el aumentó de la investigación en sistemas de tiempo real.

Definición de sistemas informáticos de tiempo real

Informática en tiempo real es el área de investigación totalmente abierta, de

desafío intelectual a problemas informáticos con recompensas directas a la

tecnología actual.

Control de experimentos del laboratorio;

Control de motores del automóvil,

Comando y Sistemas de control,

Centrales Nucleares,

Sistemas de control de vuelo,

Transbordador espacial , Aviónica de la aeronave, y Robótica.

Los sistemas de tiempo real de la próxima generación estarán en áreas aplicativas

similares para esos sistemas actuales.

No hay ciencia en el diseño de un sistema de tiempo real.

Los avances en hardware de la supercomputadora se ocuparán de los requisitos de tiempo

real.

Computación en tiempo real es equivalente a la informática rápida

Programación en tiempo real es la codificación en Assembler, la programación de prioridad

de la interrupción, y la escritura de controladores de dispositivo.

La investigación de sistemas en tiempo real es la ingeniería de rendimiento.

Los problemas de diseño de sistema de tiempo real han sido resueltos en otras áreas de la

informática o la investigación de operaciones.

No tiene sentido hablar sobre la garantía de rendimiento en tiempo real, porque no

podemos garantizar que en el hardware no se producirá un error y el software es libre de

errores o que las condiciones reales de funcionamiento no se violen los límites de diseño

especificado.

Los sistemas de tiempo real funcionan en un medio ambiente estático.

El diseño de un sistema de tiempo real es en su mayor parte, es para solucionar un determinado problema especifico. Esto no quiere decir que, sin embargo, que el acercamiento científico no es posible.

La ciencia perdió con el tiempo intentos para solucionar problemas prácticos, y hay muchísima prueba que el diseño de sistemas de tiempo real necesita ayuda.

Ejemplo

El primer vuelo del transbordador espacial fue demorado, en un costo considerable por una falla sutil momentánea, que provino de un recarga transitoria del CPU, durante la inicialización del sistema.

Los avances en el diseño de supercomputadoras probablemente

explotarán procesadores paralelos para mejorar el rendimiento específico

del sistema, pero esto no significa que las limitaciones de tiempo se

cumplirán de forma automática. A menos que la arquitectura del sistema de

cómputo esté cuidadosamente hecha a la medida, para corresponder a la

aplicación, los procesadores y sus subsistemas de comunicación, no van a

poder con toda la carga, de tarea y tráfico en tiempo critico. De hecho, a

problemas de tarea en tiempo real y de comunicación de la programación,

probablemente se empeorarán a medida que el hardware sea mas usado.

El objetivo de la computación rápida es reducir al mínimo el tiempo

de respuesta promedio de un conjunto determinado de tareas.

El objetivo de la computación en tiempo real es conocer el requisito

de los plazos individuales de cada tarea.

La informática rápida es útil en el cumplimiento de las

especificaciones estrictas de tiempo, pero cómputo rápido por sí

solo no es garantía de la predictibilidad.

Para hacer frente a fuertes restricciones de tiempo, la práctica actual

en la programación, de tiempo real se basa principalmente en

técnicas de optimización a nivel de máquina.

Estas técnicas requieren trabajo intensivo y, a veces introducen

suposiciones adicionales de tiempo (imprudentemente, pero como

último recurso) que dependen de una correcta implementación.

Un aspecto importante de la investigación en tiempo real de

sistemas, es la investigación de estrategias efectivas, de asignación

de recursos, para satisfacer estrictos requisitos de comportamiento

temporal. Los aspectos de la síntesis de la investigación en tiempo

real del sistema, se puede considerar como la ingeniería de

rendimiento.

Los investigadores del sistema real de tiempo sin duda deben tratar de aprovechar

las técnicas de solución de problemas en las zonas más desarrolladas de

investigación establecidas, pero hay problemas específicos en los sistemas de

tiempo real que no se han resuelto en cualquier otra área.

Modelos de Queueing(modelos de cola)

El fenómeno de contención de Hot-Spot

Los problemas de programación combinatoria de planificación

En el diseño del sistema de tiempo real, uno debe tratar de asignar

recursos con criterio para asegurar que cualquier restricción de

tiempo crítico, se pueden satisfacer los recursos disponibles, en el

supuesto de que el hardware/software, funcionan correctamente y el

entorno externo, no hace hincapié en el sistema, más allá de lo que

está diseñado para manejar.

Medio ambiente dinámico;

Restricciones de tiempo cambiantes;

Necesidad de planificadores jerárquicos;

Descomponer jerárquicamente sistemas de gran escala en módulos abstractos;

Carencia del tiempo y de fiabilidad en las abstracciones;

Soporte para exactitud, puntualidad y fiabilidad en cada nivel de abstracción;

Necesidad de nuevas tecnologías y enfoque prioritario en distintas áreas;

Especificación y Verificación;

Teorías de planificación;

Sistemas Operativos (RTOS);

Lenguajes de programación y metodologías de diseño;

Base de datos distribuida;

Tolerancia a fallos;

Arquitecturas de sistemas;

Comunicaciones;

Especificación: enumerar eventos y describir el orden de ocurrencia. No aplicable a restricciones de tiempo y a la extensión de la notación de lenguajes de programación;

Verificación: incorporar una métrica de tiempo para satisfacer las restricciones temporales. Problemas de abstracción. Necesidad de análisis cuantitativos. Manejo de una gran cantidad de estados;

Resuelven el problema de cumplimiento de las restricciones temporales;

Necesidad de algoritmos definidos por:

◦ Nivel de uso de procesador;

◦ Funciones de penalización ponderadas

Proveen un soporte básico garantizando:

◦ Restricciones de tiempo;

◦ Tolerancia a fallos y operación distribuida;

◦ Asignación de recursos en tiempos restringidos;

◦ Planificación de recursos varios (Memoria, CPU, I/O, sensores, comunicaciones);

Enfoque en la investigación de:

◦ Soporte para administración del tiempo;

◦ Verificación de planificabilidad;

◦ Módulos de software de tiempo real reutilizables;

◦ Soporte para aplicaciones distribuidas y tolerancia a fallos;

Se tienen dos asuntos claves a resolver:

◦ Incremento del grado de concurrencia en el procesamiento de transacciones;

◦ Integración de protocolos de control de concurrencia y algoritmos de planificación;

Seriabilidad: ejecución serie de transacciones preservando la consistencia de datos;

Lograr fiabilidad y tolerancia a fallos implica mejoras en:

◦ Especificación formal de requerimientos y análisis del impacto de restricciones de tiempo real;

◦ Manejo de errores que cumplan requerimientos de tiempo y fiabilidad;

◦ Considerar la fiabilidad del sistema con la carga de tareas de tiempo real;

Para lograr un soporte adecuado se necesita una mayor investigación en:

◦ Topologías de interconexión de procesadores y I/O;

Arquitecturas con soporte para:

◦ Manejo de errores;

◦ Algoritmos de planificación;

◦ RTOS;

◦ Características del lenguaje de programación;

Comunicación de tiempo real implica mayor investigación en:

◦ Ruteo dinámico con exactitud de tiempos;

◦ Gestión de buffer de red con soporte de planificación;

◦ Comunicación tolerante a fallos y de tiempo restringido;

◦ Integración de las planificaciones de Red y de Procesador;

Sistemas de tiempo real a gran escala y de mayor complejidad;

Necesidad de funcionamiento distribuido y sobre ambientes cambiantes;

Restricciones de tiempo y planificación de recursos complejas;

Incremento de aplicaciones en áreas económicas, ecológicas, y humanas;

Cumplir con tales desafíos implica puntualizar y coordinar el desarrollo en los distintos aspectos de desarrollo de sistemas:

◦ Técnicas de especificación y verificación;

◦ Metodologías de diseño;

◦ Lenguajes de programación;

◦ Algoritmos de planificación;

◦ Funciones de SO;

◦ Comunicación;

◦ Arquitecturas;

El desarrollo de una teoría para sistemas de tiempo real yace en el esfuerzo combinado de desarrollos por parte de universidades, industrias y entidades del gobierno;

Se debe incrementar la interacción entre la industria y los desarrolladores de manera que estos se familiaricen con los problemas encontrados en aplicaciones de la vida real;