comp.lang.ada
 help / color / mirror / Atom feed
From: JP Thornley <jpt@diphi.demon.co.uk>
Subject: Re: Need help with PowerPC/Ada and realtime tasking
Date: 1996/05/25
Date: 1996-05-25T00:00:00+00:00	[thread overview]
Message-ID: <122916091wnr@diphi.demon.co.uk> (raw)
In-Reply-To: Pine.GSO.3.92.960521204245.17309A-100000@nunic.nu.edu


Richard Riehle <rriehle@nunic.nu.edu> writes:
> 
> On Sat, 18 May 1996, JP Thornley wrote:

  [in response to a question about a "life critical application" which
   has both interrupts and tasking]

> > My first response is that safety-critical software does not go well
> > with interrupts and the use of tasking.  The main requirement of
> > safety-critical code is predictability, which is made impossible if
> > you are coping with unpredictable interrupts and with 
hard-to-analyse
> > tasking syncronisations.
> 
>   I would like to offer a slightly different view of this.
> 
    [well argued case for tasking mostly snipped]

Perhaps I am guilty of using the predictability argument to stand in for 
all the reasons for not using tasking in safety-critical code.  So I'll 
describe some more here.

Several studies into safety-critical subsets have all rejected tasking:-
	Safe Ada
	SPARK Ada
	High Integrity Ada Study (YSE/BAe)
	CSMART Ada
so there is going to be a major credibility problem convincing a 
qualification authority to go along with tasking.

Allow also for the relevant personnel from that authority to have an 
unknown level of mathematical and computer system literacy.  
(Furthermore, arguments which talk about high priority tasks being 
blocked by low priority tasks can be expected to bring on a severe fit 
of the vapours.)

Tasks in the application require tasking run-time support.  This will 
therefore need to be qualified to safety-critical standards (ie 
reasonable expectation of zero failures, see other post in this thread).
Since I've never done it, I don't know what it would take in terms of 
effort, but it can't be anything other that a very major undertaking.

I would guess that most of the tasking part of the run-time will be 
written in Ada - so will be required to either conform to the 
safety-critical subset in use or be re-written to that sub-set.  Common 
restrictions include no access types and no heap usage - is this likely 
to be a problem?  [One problem of working with small subsets is that you 
end up knowing nothing about the rest of the language, it's about six 
years since I last saw an Ada task anywhere other than a text-book or 
journal.]

>   A cyclic executive does not guarantee schedulability.  It does not 
even
>   guarantee predictability.  In fact, a cyclic executive can guarantee
>   that one actually fails to trap events as they occur.

But safety-critical systems I'm talking about have *no* interrupts (see 
my original response - perhaps not sufficiently emphasised) so this 
argument does not apply.  (Actually there is one - the timer that drives 
the minor cycle - and this has to be explicitly justified in the safety 
case.)

>   An additional problem with the cyclic executive model is ist lack of
>   portability.  Since it is dependent on the timings of the platform 
to
>   which it is targeted, it can fail to meet its goals when ported to a
>   new platform.

Agreed - any hardware or software change that affects the timing 
analysis means that you have to do it all again, and you may have to 
redesign the schedule.  (But if it comes to a trade-off between safety 
and portability there's not much doubt as to which way I'd go.)

There is a related issue that doesn't come up very often when discussing 
scheduling strategies, which is the accuracy of the worst-case execution 
times used in the analysis.  Deriving these figures requires a major 
effort, with substantial error bounds on the resulting timings.  I 
believe that the figures that I currently use are typically in the range 
10%-30% pessimistic and I wouldn't be happy to use figures with a lower 
margin of error unless I can believe that their accuracy is improved.

I can't get excited about more elaborate scheduling strategies to sqeeze 
another 5% out of the processor with safety margins like this (I'd 
sooner put it into more accurate timing figures).

>   ....  Remember that I speak here of Ada 95 tasking.

I was beginning to wonder whether I was the only reader of cla still 
using Ada 83 until there were some recent posts from others in the same 
situation in another thread.  To put my situation more clearly, there is 
one safety-critical system going into system design later this year, 
first trails to be run in 1998 and delivery to the customer in 2000 
onwards - this system will use Ada 83 as the Ada 95 compilers won't be 
usable in that timescale.
[I feel yet another post coming on, about compiler validation for 
safety-critical code, but it's time to go and cut the grass before it 
rains again.]

>   Richard Riehle
> 

Phil Thornley
-- 
------------------------------------------------------------------------
| JP Thornley    EMail jpt@diphi.demon.co.uk                           |
------------------------------------------------------------------------





  parent reply	other threads:[~1996-05-25  0:00 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-05-17  0:00 Need help with PowerPC/Ada and realtime tasking Dave Struble
1996-05-18  0:00 ` JP Thornley
1996-05-20  0:00   ` Robert I. Eachus
1996-05-21  0:00     ` Michael Levasseur
1996-05-21  0:00   ` Richard Riehle
1996-05-25  0:00     ` JP Thornley
1996-05-27  0:00       ` Robert Dewar
1996-05-28  0:00         ` JP Thornley
1996-05-29  0:00           ` Ken Garlington
1996-05-29  0:00             ` Robert A Duff
1996-05-30  0:00               ` JP Thornley
1996-05-31  0:00                 ` Ken Garlington
1996-06-02  0:00                   ` JP Thornley
1996-06-03  0:00                     ` Ken Garlington
1996-05-30  0:00               ` Software Safety (was: Need help with PowerPC/Ada and realtime tasking) Ken Garlington
1996-05-30  0:00                 ` Robert Dewar
1996-06-02  0:00                   ` JP Thornley
1996-06-03  0:00                   ` Robert A Duff
1996-06-05  0:00                     ` Norman H. Cohen
1996-06-07  0:00                       ` Ken Garlington
1996-06-12  0:00                         ` Norman H. Cohen
1996-06-12  0:00                           ` Ken Garlington
1996-06-08  0:00                       ` Robert Dewar
1996-06-08  0:00                         ` Robert A Duff
1996-05-31  0:00                 ` Robert A Duff
1996-06-03  0:00                   ` Ken Garlington
1996-05-25  0:00     ` JP Thornley [this message]
1996-05-27  0:00       ` Need help with PowerPC/Ada and realtime tasking Darren C Davenport
1996-05-30  0:00         ` Ralph E. Crafts
1996-05-31  0:00           ` JP Thornley
1996-06-03  0:00             ` Ken Garlington
1996-05-28  0:00       ` Tasking in safety-critical software (!) (was Re: Need help with PowerPC/Ada and realtime tasking) Kevin F. Quinn
1996-05-28  0:00   ` Need help with PowerPC/Ada and realtime tasking Robert I. Eachus
1996-05-30  0:00     ` JP Thornley
1996-05-28  0:00   ` Robert I. Eachus
1996-05-30  0:00     ` JP Thornley
1996-06-03  0:00       ` Ken Garlington
1996-05-31  0:00   ` Robert I. Eachus
1996-06-03  0:00   ` Ralph Paul
replies disabled

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