TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Tucker Taft <[log in to unmask]>
Reply To:
Tucker Taft <[log in to unmask]>
Wed, 11 Aug 1999 14:56:34 -0400
text/plain (48 lines)
Roger Racine wrote:
> At 01:33 PM 8/11/1999 , Harbaugh, John S wrote:
> >       <snip>
> >We are running into this sort of problem when we are running a preemptive
> tasking model on a Unix box that uses time slicing.  The Ada code looks
> slick, but the actual behavior is not per the design.  The hidden time
> slicing effectively changes the dynamic semantics of the language.
> Unfortunately, it is not always possible to turn off the time-slicing.  One
> wonders how such an implementation can be validated for compliance with
> annex D.
> >
> Since the semantics are the same whether the same-priority tasks are
> running completely in parallel (such as on a multiprocessor) or not, I can
> not see any problem that could possibly be a result of time slicing.  Could
> you send some more information?

I am not an expert on scheduling theory.  However, based on my
understanding and discussions during the Ada 9X design process,
it is clear that doing an accurate analysis of schedulability
of a hard real-time multi-tasking system depends on knowing how often there
are task switches.  The idea behind FIFO_Within_Priorities is
to minimize the number of "unnecessary" task switches.

When you say "the semantics are the same..." that really depends on
the context.  In the "Ada" core, the semantics do not specify anything
about scheduling of tasks, and doesn't even mention priorities.
In the real-time annex, the semantics are much more specific, and provide
additional guarantees.  These guarantees *are* dependent on the
number of physical processors, so in that sense, the Annex semantics
do depend on how same-priority tasks are scheduled.  In a sense, you
could define a "real-time" system by one whose semantics do depend
(at least potentially) on the details of the scheduling algorithms and

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

-Tucker Taft   [log in to unmask]
Technical Director, Distributed IT Solutions  (
AverStar (formerly Intermetrics, Inc.)   Burlington, MA  USA