RTComposer: Compositional real-time scheduling in Java
A set of Java classes, interfaces and utilities for predictable scheduling of real-time software components.
RTComposer allows for:
- Predictability: Performance requirements can be formally specified and guaranteed.
- Composability: Components can be designed independently and composed safely.
- Dynamicity: Automatic degrade/upgrade performance when conditions require/allow.
These features are achieved by adopting the Logical Execution Time (LET) abstraction and by applying formal languages and automata theory. Specifically, each component is a Java class with a specification of LET parameters and an automaton that specifies how functions should be assigned to execution slots.
As depicted in the first diagram, RTComposer applies an hierarchical scheduling approach: a standard task scheduler is used for inter-slot scheduling and an automata-based scheduler is used for intra-slot scheduling.
The second diagram depicts the proposed methodology: an automaton is drawn for each component that specifies the set of schedules that the component allows. Another automaton specifies the platform constraints, and execution is by a random walk over the product automaton (that model the intersection of all the constraints).
The third diagram depicts graphs that show an upgrade of performance when conditions improve. Specifically, the step response of a control system improves when the computational load decreases.
System requirements: RTSJ compliant Java virtual machine. Tested with Sun Java Real-Time System (Java RTS) on SUSE Linux Enterprise Real-Time 10.