jeffw@sce.carleton.ca (Jeff Wilson) (10/19/89)
I'm trying to obtain some information about the semantics of Ada timing. For instance, if a task executes a timed entry call, does the specified time begin when the call 1) 'leaves' the task? 2) 'leaves' the task's logical processor? 3) 'arrives' at the acceptor's logical processor? 4) 'arrives' at the acceptor's entry queue? Any information which directly or remotely deals with Ada timing semantics and implementations would be appreciated. Jeff Wilson Dept. of Systems and Computer Engineering Carleton University Ottawa, Ontario, Canada K1S 5B6 jeffw@sce.carleton.ca
stt@inmet (10/21/89)
It is not currently well defined in Ada exactly when the delay starts for a timed entry call, though I suspect a goal of Ada9X is to define this well. The place where this becomes interesting is obviously in a physically distributed system. Personally, I have always favored the interpretation where the delay starts when the call "arrives" at the acceptor, since this makes the conditional entry call equivalent to a timed entry call with a delay of 0. The delay is therefore interpreted as a limit on the queue waiting time, rather than on any aspect of the communication overhead of the entry call. Of course, there are situations where the other interpretation (where the communication delay contributes to the expiration of the delay) is more useful, but since it is so hard to define well in the absence of "global time," and to implement efficiently and faithfully, and since it means that a conditional entry is *not* the same as a timed entry with delay of zero, I don't think it is the right answer. S. Tucker Taft stt%inmet@uunet.uu.net uunet!inmet!stt Intermetrics, Inc. Cambridge, MA 02138