Resource Management Discussion: Led by Tucker Taft, Intermetrics, An AverStar Company

-Scheduling and Priorities

-Coordination and Synchronization


 

Goal: Portability of RT components
Derived Requirement: Well-defined API with guarantees on all language features

Goal: Implementable on existing RTOSs
Derived Requirement: Does not rely on "exotic" underlying mechanisms.
Discussion: Most are priority based Most support some kind of priority "boosting" (priority inheritance, priority ceiling) Priority based mechanisms most natural choice for RT Java. Requiring synchronized/wait/notify to "work right" is not a major implementation burden.
   

Goal: Support use of components as "black boxes", including on the same thread
Derived Requirement: Ability to impose space/time/etc. limits, in a scoped manner, from the outside; on "standard" Java features too.

Derived Requirement: Existing Java features shall "work right" including:
    -synchronized (bounded priority inversion)
    -wait/notify (priority queuing)
Discussion: Any thread created in "scope" of user-defined policy manager is under control of that policy.  Pre-existing thread class priorities might be mapped to "real-time" priorities.

Goal: Support multiple scheduling policies/models
Derived Requirement: Provide support for user-defined scheduling policy control and flexible underlying mechanism.

[Semi] Open Issues: Need to standardize various "utility" synchronization classes, such as: semaphore, barrier, message queue, r/w lock,..)?  Justification: Interoperability with native call.  Initial Recommendation: Not a requirements.  Issue Answer: Maybe,  to solve specific problems.
 

Scheduling Policy Manager:  This concept was presented by Tucker Taft.  The consensus of the group is that it is an idea deserving further discussion.