TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Classic View

Use Monospaced Font
Show HTML Part by Default
Condense Mail Headers

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

Print Reply
Sender: "Team Ada: Ada Advocacy Issues (83 & 95)" <[log in to unmask]>
X-To: Roger Racine <[log in to unmask]>
Date: Wed, 11 Aug 1999 14:56:34 -0400
Reply-To: Tucker Taft <[log in to unmask]>
From: Tucker Taft <[log in to unmask]>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=us-ascii
Organization: AverStar (formerly Intermetrics) Burlington, MA USA
MIME-Version: 1.0
Parts/Attachments: 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