comp.lang.ada
 help / color / mirror / Atom feed
From: Ted Dennison <dennison@telepath.com>
Subject: Re: GUI Design for Ada
Date: 1999/10/29
Date: 1999-10-29T00:00:00+00:00	[thread overview]
Message-ID: <7vcd4p$r9q$1@nnrp1.deja.com> (raw)
In-Reply-To: 7vb03r$1ea$1@news5.fast.net

In article <7vb03r$1ea$1@news5.fast.net>,
  "Andrew" <mysig@fast.net> wrote:

> However, the project I'm working on is a multi-process  simulation
> that runs on a dual PowerPC system.

Out of curiosity, what OS are you using?

> I'm looking for a good reference/tutorial type book that discusses
> real-time programming in Ada that's new to this field.

I'm not aware of an Ada book specific to real-time. Chapters 17 and 18
in Cohen's Ada as a Second Language cover a lot of the issues.
We also have a couple of copies of A Practitioner's Handbook for
Real-Time Analysis, which covers a lot of issues related to
Rate-Monotonic systems in a language-neutral manner.

In Ada you can make a simple rate-monotonic system by putting each
scheduled item in its own task. Each task should set its priority
relative to the other tasks to be the same as its iteration rate
relative to the other tasks (using Ada.Dynamic_Priorities). A global
package that keeps track of everyone's priority and rate (perhaps as
read from a configuration file) can be useful for this purpose.

Before its first iteration, each task should save the current value of
Ada.Real_Time.Clock. At the end of each iteration, the task will add its
iteration rate to the saved time, and perform a "delay until" that time.
More sophistacted logic can be added to detect and handle overruns.

We discovered on our project that with careful attention given to using
standard Ada constructs rather than their OS equivalents, one can create
an entire real-time simulation in Ada that is souce code portable to
other OS/compiler combinations (excepting specialized hardware
interfaces, of course). For instance, when hardware availability turned
out to be a problem, we were able to compile and test early versions of
our entire system on NT boxes using Gnat, even though the code was
written for the GreenHills Ada cross-compiler for vxWorks. Of course you
don't quite get real-time performance in NT. But if we needed to change
RTOS's or compiler vendors, it would be an almost painless process. I am
unaware of *any* other language that could provide this.

--
T.E.D.


Sent via Deja.com http://www.deja.com/
Before you buy.




  parent reply	other threads:[~1999-10-29  0:00 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-10-28  0:00 GUI Design for Ada Andrew
1999-10-28  0:00 ` David Botton
1999-10-29  0:00 ` Matthew Heaney
1999-10-29  0:00 ` Aidan Skinner
1999-10-29  0:00 ` Ted Dennison [this message]
1999-10-29  0:00   ` Andrew
1999-11-01  0:00     ` Ted Dennison
1999-11-01  0:00       ` Andrew
1999-10-29  0:00 ` tmoran
1999-10-29  0:00   ` Andrew
1999-11-05  0:00 ` Stefan Skoglund
1999-11-05  0:00   ` Andrew
1999-11-07  0:00     ` Preben Randhol
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox