Mechanisms in Real-Time Embedded Systems
Last modification: 19-07-2004
The current use of software as the key component of any real-time embedded system is increasing the demand for attributes such as reliability and availability, which are more prevalent on systems based on rather static approaches and offline analysis. At the same time, there is an eagerness for future systems to be more evolutionary in nature, other than the totally pre-designed ones, which are currently widespread. Nevertheless, the design practices followed in current real-time systems are quite inadequate to address issues such as flexibility and adaptability.
These different types of requirements are very difficult to integrate in a common framework, due to the inherent timeliness requirements and embedded nature of real-time systems. A prevalent notion is that introducing requirements which are orthogonal to the main functionality intended for the system will introduce additional stress on the determinism and reliability of the real-time application.
It is thus a foreseen perspective that real-time systems software will have to incorporate advanced programming techniques, already being applied in other areas of computer science and engineering, which are able to separate the functional part of the application from its dynamic monitoring and control, without precluding the determinism of the system. In this area, there is a current eagerness for new technologies which are able to provide this separation and determinism.
Therefore, the main goal of this project is to provide real-time systems with a generic framework for dynamic application monitoring and control, which uses the advantages offered by advanced programming paradigms, with a particular focus on reflection technologies (although it is foreseen to also consider aspect-oriented programming). The correct use of this technology will allow building systems where the functional aspects are guaranteed to be reliable and deterministic, whilst providing the required flexibility.
In an initial phase, the project will analyse current and future systems, and their reliability vs. flexibility requirements will be evaluated in order to roadmap the required developments. The second phase of the project will develop, based on these requirements, a generic high-level model of a reflection framework, whilst studying the impact of the necessary low-level mechanisms on the determinism of both the real-time application and the underlying platform. In parallel, a study will be performed to identify and review existent platforms which can be used by reflection-based real-time applications.
The third phase of the project will constitute on
the implementation of this framework on one of the identified platforms,
which will require not only implementing libraries and tools, but also to
adapt a compiler and an operating system for this purpose. The final phase
of the project will then evaluate the framework, using a prototype of a
real-time application, integrating the reflection-based framework for
monitoring and control purposes.