I am having a debate with someone about the possibility of allowing time
slicing within Ada programs if the Annex D standard task dispatching policy
is followed.

His position (if I have it correctly) is that time slicing is specifically
forbidden.  He takes his position from the RM, section D.2.2.  My position
is that time slicing is allowed.  My position comes from reading the
Rationale, section D.2.1, the last paragraph of the section:

"Another anticipated application requirement is for time slicing.
Implementation-defined time-slicing schemes may conform to this
specification by modifying the active or base priority of a task, in a
fashion similar to that outlined for EDF scheduling."

Obviously, if the RM specifically forbad time-slicing and the Rationale
allowed it, the RM would take precedence.  But it is not quite that
straightforward.  The Rationale distinguishes between task dispatching and
task scheduling.  The RM does not seem to make this distinction.  And the
Rationale language is in a context of scheduling policy, not dispatching
policy.

I hope this is something that can be answered with "Oh, the Rationale
language is meant for some other dispatching mechanism", or "The Rationale
is wrong; no complying runtime system can change priorities at will", or
"The Rationale is correct. Compiler XYZ has been validated for Annex D and
allows time slicing."

Roger Racine
Roger Racine
Draper Laboratory, MS 31
555 Technology Sq.
Cambridge, MA 02139, USA
617-258-2489