The Real-Time Specification for Java

New languages, programming disciplines, operating systems, and software engineering techniques sometimes hold considerable potential for real-time software developers. A promising area of interest-but one fairly new to the real-time community-is object-oriented programming. Java, for example, draws heavily from object orientation and is highly suitable for extension to real-time and embedded systems. Recognizing this fit between Java and real-time software development, the Real-Time for Java Experts Group (RTJEG) began developing the real-time specification for Java (RTSJ) in March 1999 under the Java Community Process. This article explains RTSJ's features and the thinking behind the specification's design. The goal of the RTJEG, of which the authors are both members, was to provide a platform-a Java execution environment and application program interface (API)-that lets programmers correctly reason about the temporal behavior of executing software.

[1]  Kevin Jeffay,et al.  Accounting for interrupt handling costs in dynamic priority task systems , 1993, 1993 Proceedings Real-Time Systems Symposium.

[2]  Theodore P. Baker,et al.  A stack-based resource allocation policy for realtime processes , 1990, [1990] Proceedings 11th Real-Time Systems Symposium.

[3]  Theodore P. Baker,et al.  The cyclic executive model and Ada , 1988, Proceedings. Real-Time Systems Symposium.

[4]  Jay K. Strosnider,et al.  ENHANCED APERIODIC RESPONSIVENESS IN HARD REAL-TIME ENVIRONMENTS. , 1987, RTSS 1987.

[5]  John P. Lehoczky,et al.  Fixed priority scheduling periodic tasks with varying execution priority , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.

[6]  C. Douglas Locke,et al.  Building a predictable avionics platform in Ada: a case study , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.

[7]  Hideyuki Tokuda,et al.  Preemptibility in real-time operating systems , 1992, [1992] Proceedings Real-Time Systems Symposium.

[8]  Paul R. Wilson,et al.  Non-compacting memory allocation and real-time garbage collection , 1997 .

[9]  Paul R. Wilson,et al.  Dynamic Storage Allocation: A Survey and Critical Review , 1995, IWMM.

[10]  Kevin Jeffay,et al.  Scheduling sporadic tasks with shared resources in hard-real-time systems , 1992, [1992] Proceedings Real-Time Systems Symposium.

[11]  B. O. Gallmeister,et al.  Early experience with POSIX 1003.4 and POSIX 1003.4 A , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.

[12]  James H. Anderson,et al.  Wait-free object-sharing schemes for real-time uniprocessors and multiprocessors , 1997, Proceedings Real-Time Systems Symposium.

[13]  Michael B. Jones,et al.  Adaptive Real-Time Resource Management Supporting Modular Composition of Digital Multimedia Services , 1993, NOSSDAV.

[14]  Fridtjof Siebert,et al.  Real-time garbage collection in multi-threaded systems on a single processor , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

[15]  Christophe Lizzi Enabling deadline scheduling for Java real-time computing , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

[16]  Aloysius K. Mok,et al.  A Graph-Theoretic Approach for Timing Analysis in Real Time Logic , 1986, RTSS.

[17]  Kevin Jeffay,et al.  A Rate-Based Execution Abstraction for Multimedia Computing , 1995, NOSSDAV.

[18]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[19]  Lui Sha,et al.  Real-time synchronization protocols for multiprocessors , 1988, Proceedings. Real-Time Systems Symposium.

[20]  Jane W.-S. Liu,et al.  Imprecise Results: Utilizing Partial Comptuations in Real-Time Systems , 1987, RTSS.

[21]  Lui Sha,et al.  Priority Inheritance Protocols: An Approach to Real-Time Synchronization , 1990, IEEE Trans. Computers.

[22]  Stefan Savage,et al.  Processor Capacity Reserves for Multimedia Operating Systems , 1993 .

[23]  W. Zhao,et al.  Performance analysis of FCFS and improved FCFS scheduling algorithms for dynamic real-time computer systems , 1989, [1989] Proceedings. Real-Time Systems Symposium.

[24]  Krithi Ramamritham,et al.  Dynamic Scheduling of Groups of Tasks with Precedence Constraints in Distributed Hard Real-Time Systems , 1986, IEEE Real-Time Systems Symposium.

[25]  T. Baker,et al.  Real-time features for Ada 9X , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.

[26]  Kevin Jeffay Analysis of a synchronization and scheduling discipline for real-time tasks with preemption constraints , 1989, [1989] Proceedings. Real-Time Systems Symposium.

[27]  Jane W.-S. Liu,et al.  Scheduling Real-Time, Periodic Jobs Using Imprecise Results , 1987, RTSS.

[28]  John P. Lehoczky,et al.  Algorithms for scheduling hard aperiodic tasks in fixed-priority systems using slack stealing , 1994, 1994 Proceedings Real-Time Systems Symposium.

[29]  N. Lynch,et al.  Timing-based mutual exclusion , 1992, [1992] Proceedings Real-Time Systems Symposium.

[30]  John P. Lehoczky,et al.  The rate monotonic scheduling algorithm: exact characterization and average case behavior , 1989, [1989] Proceedings. Real-Time Systems Symposium.

[31]  Chung Laung Liu,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[32]  John P. Lehoczky,et al.  Fixed priority scheduling of periodic task sets with arbitrary deadlines , 1990, [1990] Proceedings 11th Real-Time Systems Symposium.

[33]  Patrick Chan,et al.  The Java class libraries , 1998 .

[34]  Hideyuki Tokuda,et al.  A Time-Driven Scheduling Model for Real-Time Operating Systems , 1985, RTSS.

[35]  Michael B. Jones,et al.  Support for User-Centric Modular Real-Time Resource Management in the Rialto Operating System , 1995, NOSSDAV.

[36]  Krithi Ramamritham,et al.  Virtual Time CSMA Protocols for Hard Real-Time Communication , 1987, IEEE Transactions on Software Engineering.

[37]  Michael L. Green,et al.  A Distributed Real Time Operating System , 1980, IEEE Real-Time Systems Symposium.

[38]  Alan C. Shaw,et al.  Software Clocks, Concurrent Programming, and Slice-Based Scheduling , 1986, IEEE Real-Time Systems Symposium.

[39]  Lui Sha,et al.  Exploiting unused periodic time for aperiodic service using the extended priority exchange algorithm , 1988, Proceedings. Real-Time Systems Symposium.

[40]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[41]  Charles U. Martel,et al.  On non-preemptive scheduling of period and sporadic tasks , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.