Primera parte
En la tesis doctoral planteada por López, publicada el año 2010 con el título “Desarrollo de sistemas de tiempo real basados en componentes utilizando modelos de comportamiento reactivos”, se menciona que, los sistemas de tiempo real son sistemas informáticos que debido a su naturaleza o funcionalidad interaccionan continuamente con un entorno externo que evoluciona dinámicamente en el tiempo físico. Son por tanto sistemas reactivos, que deben generar respuestas con restricciones temporales a los eventos que reciben del entorno, y que asimismo, pueden tener que generar eventos y acciones hacia el entorno en instantes específicos del tiempo. Debido a ello, en palabras de Stankovic y Ramamritham, en el artículo escrito el año 1998 con el título “Tutorial sobre sistemas en tiempo real”, su correcto funcionamiento se produce no sólo cuando realizan las acciones correctas o generan los datos especificados por su funcionalidad, sino también cuando las generan en los tiempos adecuados. De manera bastante frecuente los sistemas de tiempo real son también empotrados, esto es, representan sistemas computacionales que forman parte de un sistema mayor, que controlan o supervisan alguna de sus funciones internas. Ejemplos de sistemas de tiempo real van desde pequeños controladores de electrodomésticos hasta complejos sistemas de control de vehículos espaciales.
Pulido, en la tesis doctoral publicada el año 2007 con el título “Arquitectura de software para sistemas de tiempo real particionados”, menciona que existe una gran variedad de definiciones de sistema de tiempo real aunque todas ellas coinciden en algo fundamental: La relevancia del tiempo de respuesta. Una definición ampliamente aceptada es la que define un sistema de tiempo real como “cualquier actividad o procesamiento de información que tiene que responder a un estímulo de entrada generado externamente, en un período finito y especificado”, descrito en el artículo publicado por Young, en el año 1982 con el título “Lenguajes de tiempo real: Diseño y desarrollo”. Dicho de otra forma, en un sistema de tiempo real no basta con que la respuesta sea correcta desde el punto de vista lógico, sino que además ésta debe producirse dentro de un intervalo previamente especificado. Hanninen y sus colegas, en el artículo publicado el año 2008 con el título “Modelo de componentes Rubus para sistemas de tiempo real con recursos restringidos”, mencionan que en la especificación de un sistema de tiempo real se puede asociar un plazo temporal máximo para la ejecución de cada una de las acciones que el sistema realiza. Atendiendo al nivel de tolerancia que se acepta en el incumplimiento de dichos plazos temporales, los sistemas de tiempo real se clasifican en sistemas estrictos y laxos. En los sistemas de tiempo real estricto, un plazo perdido representa un error fatal e irrecuperable, y por tanto, nunca es admitido. Por el contrario, en el caso de sistemas de tiempo real laxos, la pérdida de un plazo temporal no constituye necesariamente un error fatal. En estos casos las restricciones temporales se formulan como tasas de fallos que deben satisfacerse estadísticamente. Por supuesto, también existen sistemas en los que se mezclan requisitos de ambos tipos. Es más, debido al continuo aumento de la capacidad de las plataformas y de los mecanismos de comunicación, las aplicaciones de tiempo real que se desarrollan son cada vez más complejas, y en general, tienden a mezclar actividades que deben realizarse en régimen de tiempo real estricto, con otras de tipo laxo, que requieren niveles de calidad de servicio o incluso que no imponen ningún tipo de requisito temporal.
En la tesis doctoral de Barros, publicada el año 2012 con el título “Diseño de aplicaciones de tiempo real para plataformas abiertas”, se menciona que el término sistema de tiempo real generalmente se utiliza para referirse a un sistema completo que incluye tanto la aplicación software, como la plataforma en la que la aplicación se ejecuta. En el diseño de sistemas de tiempo real hay que contemplar dos aspectos diferentes aunque complementarios: (1) Diseño lógico y funcional. A través del que se definen las clases y operaciones que ejecutan las actividades que implementan la funcionalidad de los sistemas. Éstas últimas deben recibir y manejar los eventos del entorno o del reloj, procesar la información que se recibe, elaborar las respuestas y ejecutar las acciones con las que se actúa sobre el entorno. Este aspecto del diseño es convencional e idéntico al de cualquier aplicación informática. (2) Diseño de la planificación. Cuyo objetivo es organizar explícita o implícitamente el orden con el que se han de ejecutar las actividades a realizar, a fin de que en todos los casos, sea cual sea el orden y los tiempos en los que se reciben los eventos del entorno, todas las actividades finalicen dentro de los plazos temporales que tienen especificados. Este aspecto del diseño es complejo, ya que no sólo involucra las características del código de la aplicación, sino también la configuración de los elementos de la plataforma con la que se gestiona su ejecución. La característica más importante de un sistema de tiempo real es su predictibilidad: Según Stankovic, en el artículo publicado el año 1988 con el título “Conceptos erroneos acerca de computación en tiempo real”, el sistema debe ofrecer un comportamiento temporal conocido que permita certificar el cumplimiento de los plazos temporales asociados a las respuestas del sistema. El término sistema de tiempo real generalmente se utiliza para referirse a un sistema completo, que incluye tanto la aplicación software, como la plataforma, compuesta por dispositivos hardware, sistema operativo y servicios de comunicaciones, en las que la aplicación se ejecuta. Para ejecutar una aplicación de tiempo real con la garantía del cumplimiento de sus requisitos temporales no sólo es necesario que su código tenga un comportamiento temporal predecible, sino también que la plataforma de ejecución proporcione servicios con tiempos de respuesta acotados y conocidos.
Portada de HOY |
1 Dólar: | 6.96 Bs. |
1 Euro: | 7.31 Bs. |
1 UFV: | 2.09053 Bs. |
Impunidad |