[comp.lang.ada] processing order

HEARNE@wwu.EDU (08/28/87)

RE: Haerim Lee's question

Entry calls are not processed in sending order.  In some systems,
such as ones in which the callers resided on different processors,
the adminstrative overhead and, in some cases, waiting would
be intolerable.

--Jim Hearne

agnew@trwrc.UUCP (R.A. Agnew) (09/03/87)

In article <8708292239.AA14468@ucbvax.Berkeley.EDU> HEARNE@wwu.EDU writes:
>
>Entry calls are not processed in sending order.  In some systems,
>such as ones in which the callers resided on different processors,
>the adminstrative overhead and, in some cases, waiting would
>be intolerable.
>
>--Jim Hearne

Maybe thats true in some systems but it can't be true in embedded
real-time systems. (remember what Ada is for)
If it is true, then I've got a few million dollars worth of real-time
systems sitting out here that are never going to work! I'm going to talk
to the run-time kernal designer about it right now. Does the Stanford
system have that problem?

ROSENBLUM@SIERRA.STANFORD.EDU (David S. Rosenblum) (09/06/87)

>>
>>Entry calls are not processed in sending order.  In some systems,
>>such as ones in which the callers resided on different processors,
>>the adminstrative overhead and, in some cases, waiting would
>>be intolerable.
>>
>Maybe thats true in some systems but it can't be true in embedded
>real-time systems. (remember what Ada is for)
>If it is true, then I've got a few million dollars worth of real-time
>systems sitting out here that are never going to work! I'm going to talk
>to the run-time kernal designer about it right now. Does the Stanford
>system have that problem?

I presume the "Stanford system" referred to here is the distributed
tasking supervisor I have designed as part of my PhD work.  My
tasking supervisor is a PORTABLE system that implements Ada tasking
for any multiple-processor hardware/network combination.  In particular,
it makes no assumption about the topology of the processors or the
characteristics of the network connecting those processors.  Thus, it is
highly probable that processing order will not be the same as sending
order in many systems to which the supervisor could be ported.  But
this is not a "problem".

The Ada LRM merely says that "calls are processed in the order of arrival".
The key word here is "arrival"--it designates a point of view of the
queueing discipline of entry queues, namely that of the accepting task.  There
is no requirement in the LRM that calls be processed in the order in which
they are sent, because one cannot always count on there being a global sense
of time in every system.  Yes, one can design an implementation of Ada
in which processing order IS the same as the sending order, and it will be
validated.  However, software which depends on such an implementation
characteristic is, if not erroneous according to the Ada LRM, certainly
not portable Ada code.

Ada was designed for programming real-time embedded systems, but the
impression I get from talking to several aerospace people is that the
language falls far short of the needs of such systems.

-- David Rosenblum
-------