This article presents a viable solution to introducing flexible scheduling in the Real-Time specification for Java (RTSJ), in the form of a flexible scheduling framework. The framework allows the concurrent use of multiple application-defined scheduling policies, each scheduling a subset of the total set of threads. Moreover, all threads, regardless of the policy under which they are scheduled, are permitted to share common resources. Thus, the framework can accommodate a variety of interworking applications (soft, firm, and hard) running under the RTSJ. The proposed approach is a two-level scheduling framework, where the first level is the RTSJ priority scheduler and the second level is under application control. This article describes the framework's protocol, examines the different types of scheduling policies that can be supported, and evaluates the proposed framework by measuring its execution cost. A description of an application-defined Earliest-Deadline-First (EDF) scheduler illustrates how the interface can be used. Minimum backward-compatible changes to the RTSJ specification are discussed to motivate the required interface. The only assumptions made about the underlying real-time operating system is that it supports preemptive priority-based dispatching of threads and that changes to priorities have immediate effect.
Download Not Available

BibTex Entry

@article{Zerzelidis2010,
 address = {New York, NY, USA},
 author = {Alexandros Zerzelidis and Andy Wellings},
 doi = {http://doi.acm.org/10.1145/1814539.1814542},
 issn = {1539-9087},
 journal = {ACM Trans. Embed. Comput. Syst.},
 number = {1},
 pages = {1--44},
 publisher = {ACM},
 title = {A framework for flexible scheduling in the RTSJ},
 volume = {10},
 year = {2010}
}