Los sistemas de tiempo real tienen un papel cada vez más importante en nuestra sociedad.
Constituyen un componente fundamental de los sistemas de control, que a su vez forman
parte de diversos sistemas de ingeniería básicos en actividades industriales, militares, de
comunicaciones, espaciales y médicas.
La planificación de recursos es un problema fundamental en la realización de sistemas
de tiempo real. Su objetivo es asignar los recursos disponibles a las tareas de forma que
éstas cumplan sus restricciones temporales. Durante bastante tiempo, el estado de la técnica
en relación con los métodos de planificación ha sido rudimentario. En la actualidad, los
métodos de planificación basados en prioridades han alcanzado un nivel de madurez suficiente
para su aplicación en entornos industriales. Sin embargo, hay cuestiones abiertas
que pueden dificultar su utilización.
El objetivo principal de esta tesis es estudiar los métodos de planificación basados
en prioridades, detectar las cuestiones abiertas y desarrollar protocolos, directrices y
esquemas de realización práctica que faciliten su empleo en sistemas industriales.
Una cuestión abierta es la carencia de esquemas de realización de algunos protocolos
con núcleos normalizados. El resultado ha sido el desarrollo de esquemas de realización
de tareas periódicas y esporádicas de tiempo real, con detección de fallos de temporización,
comunicación entre tareas, cambio de modo de ejecución del sistema y tratamiento
de fallos mediante grupos de recuperación. Los esquemas se han codificado en Ada 9X
y se proporcionan directrices para analizar la planificabilidad de un sistema desarrollado
con esta base. Un resultado adicional ha sido la identificación de la funcionalidad mínima
necesaria para desarrollar sistemas de tiempo real con las características enumeradas.
La capacidad de adaptación a los cambios del entorno es una característica deseable de
los sistemas de tiempo real. Si estos cambios no estaban previstos en la fase de diseño o
si hay módulos erróneos, es necesario modificar o incluir algunas tareas. La actualización
del sistema se suele realizar estáticamente y su instalación se lleva a cabo después de parar
su ejecución. Sin embargo, hay sistemas cuyo funcionamiento no se puede detener sin
producir daños materiales o económicos.
Una alternativa es diseñar el sistema como un conjunto de unidades que se pueden
reemplazar, sin interferir con la ejecución de otras unidades. Para tal fin, se ha desarrollado
un protocolo de reemplazamiento dinámico para sistemas de tiempo real crítico y se ha
comprobado su compatibilidad con los métodos de planificación basados en prioridades.
Finalmente se ha desarrollado un esquema de realización práctica del protocolo.---ABSTRACT---Real-time systems are very important now a days. They have become a relevant issue in
the design of control systems, which are a basic component of several engineering systems
in industrial, telecommunications, military, spatial and medical applications.
Resource scheduling is a central issue in the development of real-time systems. Its
purpose is to assign the available resources to the tasks, in such a way that their deadlines
are met. Historically, hand-crafted techniques were used to develop real-time systems.
Recently, the priority-based scheduling methods have reached a sufficient maturity level
to be feasible its extensive use in industrial applications. However, there are some open
questions that may decrease its potential usefulness.
The main goal of this thesis is to study the priority-based scheduling methods, to identify
the remaining open questions and to develop protocols, implementation templates and
guidelines that will make more feasible its use in industrial applications.
One open question is the lack of implementation schemes, based on commercial realtime
kernels, of some of the protocols. POSIX and Ada 9X has served to identify the
services usually available. A set of implementation templates for periodic and sporadic
tasks have been developed with provisión for timing failure detection, intertask coraraunication,
change of the execution mode and failure handling based on recovery groups.
Those templates have been coded in Ada 9X. A set of guidelines for checking the schedulability
of a system based on them are also provided. An additional result of this work is
the identification of the minimal functionality required to develop real-time systems based
on priority scheduling methods, with the above characteristics.
A desirable feature of real-time systems is their capacity to adapt to changes in the
environment, that cannot be entirely predicted during the design, or to misbehaving software
modules. The traditional maintenance techniques are performed by stopping the
whole system, installing the new application and finally resuming the system execution.
However this approach cannot be applied to non-stop systems.
An alternative is to design the system as a set of software units that can be dynamically
replaced within its operative environment. With this goal in mind, a dynamic replacement
protocol for hard real-time systems has been defined. Its compatibility with priority-based
scheduling methods has been proved. Finally, a execution témplate of the protocol has
been implemented