Austin, Texas Setting up a competition with Sun Microsystems' real-time Java effort, IBM Corp. researchers have developed a real-time Java platform that includes a garbage collector with claimed worst-case delays of 2 milliseconds.
IBM's Metronome technology is being tested by an unnamed customer in the defense sector, with a public detailing of the work expected in a month or so, said David Bacon, a member of the research staff at the Thomas J. Watson Research Center (Yorktown Heights, N.Y.).
Garbage collection frees up dynamically allocated memory that is no longer referenced by an application, but it should not interfere when the system is called upon to respond immediately. Thus the technique has been a topic of debate among software researchers.
In June, Sun began licensing the initial version of the Sun Java Real-Time System (JRTS). By the end of this year, Sun expects to release a second version that incorporates a real-time garbage collector developed at Sweden's Lund University. For truly deterministic behavior, Sun requires "no heap" coding that prohibits garbage collection, in combination with "scoped" memory management techniques, which can be tuned by a skilled programmer. Sun claims response times of 10 to 20 microseconds for its real-time Java suite on a dual-core Sun workstation running Solaris.
Metronome's response is in the 2-ms range for a dual-core Pentium system, but it is compatible with standard Java programming techniques, which do not require programmers to deal with the intricacies of scoped memory management.
Perry Cheng, a staff researcher at IBM's Watson lab, said IBM's approach makes real-time programming in Java easier because its real-time garbage collector is fast enough for most applications. Telecom customers, for example, look for a 10-ms response, well within Metronome's limits.
"There are still a few things that want to go below 2 ms, and for that IBM also requires a more-restrictive programming model. But by getting to that 2-ms level, we cover a very wide range of applications," Cheng said.
To achieve the 2-ms worst-case response time, IBM figured out how to improve on previously known techniques that had been considered too expensive in terms of run-time overhead, making those techniques practical for day-to-day execution, Bacon said.
The researchers reduced memory fragmentation and used time-based, rather than work-based, scheduling. That approach schedules garbage collection while monitoring the application's memory allocation activity.
"For a very long time, there was an unspoken conception that real-time garbage collection wasn't possible. We did the fundamental research that showed we could do it," Cheng said.
The basic Metronome algorithms were deployed in the Jikes research virtual machine, aimed at researchers within the Java open-source community.
Metronome is a second-generation implementation that uses IBM's J9 VM as a base. At the Watson research center, Metronome is running on everything from an embedded ARM-based board to an IBM workstation with an eight-way multiprocessor.