Real time Java
Encyclopedia
Real time Java is a catch-all term for a combination of technologies that allows programmers to write program
Computer program
A computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...

s that meet the demands of Real time
Real-time computing
In computer science, real-time computing , or reactive computing, is the study of hardware and software systems that are subject to a "real-time constraint"— e.g. operational deadlines from event to system response. Real-time programs must guarantee response within strict time constraints...

 systems in the Java programming language
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

.

Java's sophisticated memory management
Memory management
Memory management is the act of managing computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed. This is critical to the computer system.Several...

, native support for threading
Thread (computer science)
In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

 and concurrency, type safety
Type safety
In computer science, type safety is the extent to which a programming language discourages or prevents type errors. A type error is erroneous or undesirable program behaviour caused by a discrepancy between differing data types...

, and relative simplicity have created a demand for its use in many domains. Its capabilities have been enhanced to support real time computational needs:
  • Java supports a strict priority based
    Preemption (computing)
    In computing, preemption is the act of temporarily interrupting a task being carried out by a computer system, without requiring its cooperation, and with the intention of resuming the task at a later time. Such a change is known as a context switch...

     threading
    Thread (computer science)
    In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

     model.

  • Because Java threads support priorities, Java locking mechanisms support priority inversion
    Priority inversion
    In computer science, priority inversion is a problematic scenario in scheduling when a higher priority task is indirectly preempted by a lower priority task effectively "inverting" the relative priorities of the two tasks....

     avoidance techniques, such as priority inheritance
    Priority inheritance
    In real-time computing, priority inheritance is a method for eliminating priority inversion problems. Using this programming method, a process scheduling algorithm will increase the priority of a process to the maximum priority of any process waiting for any resource on which the process has a...

     or the priority ceiling protocol
    Priority ceiling protocol
    In real-time computing, the priority ceiling protocol is a synchronization protocol for shared resources to avoid unbounded priority inversion and mutual deadlock due to wrong nesting of critical sections...

    .


To overcome typical real time difficulties, the Java Community
Java Community Process
The Java Community Process or JCP, established in 1998, is a formalized process that allows interested parties to get involved in the definition of future versions and features of the Java platform....

 introduced a specification for real-time Java, JSR001. A number of implementations of the resulting Real-Time Specification for Java (RTSJ) have emerged, including a reference implementation from Timesys
TimeSys
Timesys is a privately owned company that helps software development teams build and maintain a custom Linux platform for a wide variety of embedded processors from semiconductor manufacturers such as Atmel, Freescale, Intel, Texas Instruments, and Xilinx....

, IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...

's WebSphere Real Time, Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

's Java SE Real-Time Systems, Aonix
Aonix
In January 2010, Aonix and Artisan Software Tools agreed to merge, forming a new company to be called Atego.Atego is a software development corporation headquartered in the USA and the United Kingdom with subsidiaries in France, Germany, and the Italy.- Aonix history :Aonix was formed in November...

 PERC or JamaicaVM
JamaicaVM
The JamaicaVM is a virtual machine and build environment for developing and running realtime Java programs. It includes a deterministic garbage collector and implements the RTSJ. It is designed for use in realtime and embedded systems.- See also :*Aicas...

 from aicas
Aicas
aicas GmbH is a software corporation headquartered in the Germany with subsidiaries in France and the USA.aicas provides Java technology and analysis tools for realtime and embedded systems...

.

The RTSJ addressed the critical issues by mandating a minimum specification for the threading model (and allowing other models to be plugged into the VM) and by providing for areas of memory
Memory
In psychology, memory is an organism's ability to store, retain, and recall information and experiences. Traditional studies of memory began in the fields of philosophy, including techniques of artificially enhancing memory....

 that are not subject to garbage collection, along with threads that are not preemptable by the garbage collector. These areas are instead managed using region-based memory management
Region-based memory management
In computer science, region-based memory management is a type of memory management in which each allocated object is assigned to a region. A region, also called a zone, arena, or memory context, is a collection of allocated objects that can be efficiently deallocated all at once...

.

Real-Time Specification for Java

The Real-Time Specification for Java (RTSJ) is a set of interface
Interface (computer science)
In the field of computer science, an interface is a tool and concept that refers to a point of interaction between components, and is applicable at the level of both hardware and software...

s and behavioral specifications that allow for real-time programming in the Java programming language
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

. RTSJ 1.0 was developed as JSR 1 under the Java Community Process
Java Community Process
The Java Community Process or JCP, established in 1998, is a formalized process that allows interested parties to get involved in the definition of future versions and features of the Java platform....

, which approved the new standard in November, 2001. , RTSJ 1.1 is being developed under JSR 282.

See also

  • Functional specification
    Functional specification
    A functional specification in systems engineering and software development is the documentation that describes the requested behavior of an engineering system...

  • Javolution
    Javolution
    Javolution is a real-time library aiming to make Java applications faster and more time predictable. Indeed, time-predictability can easily be ruined by the use of the standard library Javolution is a real-time library aiming to make Java applications faster and more time predictable. Indeed,...

     - RTSJ Compliant Java Library (open-source)

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK