From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_05,INVALID_DATE, LOTS_OF_MONEY autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!rutgers!ucla-cs!zen!ucbvax!SIERRA.STANFORD.EDU!ROSENBLUM From: ROSENBLUM@SIERRA.STANFORD.EDU (David S. Rosenblum) Newsgroups: comp.lang.ada Subject: Re: processing order Message-ID: <12332474770.9.ROSENBLUM@Sierra.Stanford.EDU> Date: Sun, 6-Sep-87 11:47:12 EDT Article-I.D.: Sierra.12332474770.9.ROSENBLUM Posted: Sun Sep 6 11:47:12 1987 Date-Received: Sun, 6-Sep-87 21:14:24 EDT References: <217@trwrc.UUCP> Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet List-Id: >> >>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 -------