1 research outputs found
Contributions to the safe execution of dynamic component-based real-time systems
Traditionally, real-time systems have based their design and execution on barely dynamic models to ensure, since design time, the temporal guarantees in the execution of their functionality. Great effort is being applied nowadays to progressively develop more dynamic systems, with the target of changing during their execution and to adapt themselves to their environment. The capability to change and to reconfigure themselves represents remarkable advantages as the capability to fix errors and to add new functionality with on-line updates. This means to be able to be updated without needing to stop the service, that may imply monetary losses in many cases. Design and development techniques based on components have become popular due to the use of components, which allows simplifying the system design, code reusability and updates through the substitution of components. The target of this thesis work is to provide certain degree of dynamism to real-time systems allowing them to replace components, incorporating new functionality of fixing existing bugs. On that purpose, a component-based framework is proposed, as well as the corresponding task in charge of providing dynamism to the system. The main contribution is to provide a framework to allow safe component replacements. Safe meaning that incorrect executions of tasks are avoided even y multiple tasks are executing concurrently and making use of the same data. Also that temporal guarantees are provided for every task. This framework incorporates a generic component model with real-time threads, a components replacement model with execution times that are known and bounded, and different strategies to apply such component replacement model. Some mechanisms to maintain a seamless and safe execution, regarding concurrency, before, during, and after applying the processes in charge of replacing running components are also described. Seamless execution means that components themselves do not perform the replacements, and safe means that temporal guarantees are provided and components are not affected in their execution. Part of these mechanisms are the system schedulability analysis and the framework tasks as well as reserving the needed resources for such scheduling to be correct. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Los sistemas de tiempo real han basado tradicionalmente su desarrollo en modelos altamente
predecibles ya que estos requieren garantías temporales en su ejecución.
A lo largo de los años, la technología de tiempo real ha ido penetrando en diferentes campos de
aplicación y ajustándose a paradigmas de desarrollo software más novedosos. Esto ha presentado y
presenta en la actualidad un tremendo reto ya que estas aplicaciones suelen tener un alto grado de
dinamismo, lo que entra en conflicto con la predictibilidad temporal y, en general la ejecución
segura de los mismos.
Hoy en dia se esta realizando un gran esfuerzo en el desarrollo de sistemas cada vez más
dinamicos que permitan adaptar su estructura en tiempo de ejecución para adaptarse a entornos que
presentan condiciones cambiantes. La capacidad de soportar este tipo de dinamismo presenta
ventajas descatables como permitir corregir fallos y anadir funcionalidad mediante actualizaciones
en caliente, es decir, poder actualizarse sin necesidad de realizar paradas en su servicio, lo que
podria implicar costes monetarios en muchos casos o perdidas temporales de servicio.
Por otro lado, las técnicas de diseño y desarrollo basadas en componentes se han hecho muy
populares y su aplicación a los sistemas de tiempo real gana terreno día a día. Uno de los
principales motivos de ellos es que el uso de componentes permite simplificar el diseño del sistema,
la reutilizacion de codigo e incluso la actualizacion del mismo mediante la substitucion de
componentes.
En esta tesis se aborda el objetivo de proveer a los sistemas de tiempo real de cierto grado de
dinamismo para poder reemplazar componentes de forma segura, que permita incorporar nuevas
funcionalidades o corregir errores existentes. Para ello, en esta tesis se ha elaborado de un marco de
trabajo para dar soporte a reemplazos de componentes de forma segura, entendiendo como tal que el
hecho de que no se produzcan ejecuciones incorrectas debido a la ejecución concurrente de
multiples tareas, asi como el garantizar los tiempos de ejecucion de cada tarea y acotar la duración
temporal de los reemplazos. El marco de trabajo propuesto está basado, pues, en componentes de
tiempo real, que tiene en cuenta los requisitos temporales en la ejecución de los componentes del
sistema y de las tareas propias del marco que dan soporte a estos mecanismos de reemplazo. Este
marco de trabajo incorpora un modelo generico de componente con tareas de tiempo real, un
modelo de reemplazo de componentes cuyos tiempos de ejecucion son conocidos y limitados en
tiempo y diferentes estrategias de aplicacion de dicho modelo de reemplazo de componente. Las
contribuciones propuestas integran el analisis de la planificabilidad de los componentes del sistema
y de las tareas del marco de componentes para permitir establecer los parámetros de reserva de los
recursos necesarios para las tareas del marco. Por último, se realiza una validación empírica en la
que se comprueba experimentalmente la validez del modelo tanto de forma genérica como en un
escenario específico y determinando también los recursos necesarios para su implementación