Overview
In the context of Distributed Real-Time Embedded (DRE) Systems we have been addressing real-time languages and operating system support for real-time applications. In the past, the work focused on how to develop real-time Ada applications conforming to the Ravenscar profile. The framework was based on the transparent replication of application components, and provided a set of generic task interaction objects, which could be used as basic building blocks of the supported applications. These objects provided the usual task interaction mechanisms used in hard real-time applications, allowing applications to be developed without considering replication and distribution issues.
Aftwards, we addressed how Ada and Real-Time Java supported QoS-aware applications in dynamic, ad-hoc, distributed environments. We considering the work on cooperative computing and QoS-aware applications (
QoS
) as a suitable framework for this support. We have also addressed the interconnection of languages and operating systems support to application specific requirements.
Usually languages and operating systems address a general case and the application must co-exist with any limitations imposed by such design. For modern real-time applications this limits the quality of services offered to the end-user, and impairs the use of adaptation approaches. Since this adaptation requires full knowledge of the system state, we proposed a framework to gather data at the language level, and interact with the operating system, extending the traditional POSIX trace model with a partial reflective model.
Currently, an effort is being made in the direction of introducing temporal semantics within real-time languages. It is our vision that these semantics are a core of DRE systems, and cannot be at a different level of the functional semantics usually captured in the application design and implementation.