RTSJ 1.1 Alpha Program

The fifth Alpha release of RTSJ version 1.1 is available at the RI download site. This Alpha reference implementation adds some new features from the proposed 1.1 specification, and fixes bugs and problems that were found in Alpha 4.

The major changes between the fourth Alpha and the Fifth Alpha are that:

The EG did not like the way phasing policies turned out. The version-4 approach has been replaced with a new, improved, approach to periodic phasing.

Support for processor affinity has been added. The processor affinity API is contained in the new AffinitySet class.

The fourth Alpha release of RTSJ version 1.1 is available at the RI download site. This Alpha reference implementation adds some new features from the proposed 1.1 specification, and fixes bugs and problems that were found in Alpha 3.

The major changes between the third Alpha and the fourth Alpha are that:

A new (more flexibile and potentially more efficient) raw memory access mechanism has been added. The RI supports use of this mechanism to access memory, and to access X86 I/O space.

Cost enforcement is not turned on, but cost monitoring is available. This means that the cost overrun handler, if any, is fired when an SO exceeds its cost.

Several MP-related bugs were fixed for this Alpha release and the concurrent update to the 1.0.2 RI.

The third Alpha release of RTSJ version 1.1 is available at the RI download site. This Alpha reference implementation contains implementations of about half the proposed 1.1 features. (See the JSR-282 page on jcp.org.)

The major changes between the second Alpha and the third Alpha are that:

the third Alpha includes the waitForNextRelease() family of methods in RealtimeThread,

and the base RTSJ functionality of the third Alpha is much improved. Although it is an Alpha implementation of RTSJ 1.1, this Alpha release may be the most robust version of the RI to date. It still targets Fedora Core 6, which is now using Linux 2.6.20. Fedora 7 is just out, and I think it includes high-resolution timer support (which will be welcome,) but the RI has not been tested there yet.

The goal of the Alpha program is to give "the community" a chance to try the features before they are incorporated in a final specification. It's possible, even likely, that this process will find 1.1 features that should be removed or fundamentally modified.

At this point work on the RI includes:

Much work on migration to NPTL. (Not a 1.1 issue, but it needs to be done.)

Add a blocking time value to release parameters.

Add new methods to consistently provide a methods that take a destination value where they would be expected.

Add Scheduler.getCurrentSO() method

Add RelativeTime.compareToZero()

Support pinned scopes

Timed.resetTime()

RichAsyncEvent.fire(arg) with an argument that is passed to the handler

Methods to access the CPU consumption of schedulable objects.

Add an option for AsyncEventHandlers to enter/leave their initial memory on each internal call to handleAsyncEvent().