Reﬂexes: Abstractions for Integrating Highly Responsive Tasks into Java Applications
Achieving submillisecond response times in a managed language environment such as Java or C# requires overcoming signiﬁcant challenges. In this article, we propose Reﬂexes, a programming model and runtime system infrastructure that lets developers seamlessly mix highly responsive tasks and timing-oblivious Java applications. Thus enabling gradual addition of real-time features, to a non-real-time application without having to resort to recoding the real-time parts in a different language such as C or Ada. Experiments with the Reﬂex prototype implementation show that it is possible to run a real-time task with a period of 45 μs with an accuracy of 99.996% (only 0.001% worse than the corresponding C implementation) in the presence of garbage collection and heavy load ordinary Java threads.