[Top] [All Lists]

Re: [ontolog-forum] Asynchronous processes -- was NASA-Ontolog OKDMS

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: Ed Barkmeyer <edbark@xxxxxxxx>
Date: Fri, 02 Nov 2007 11:48:49 -0400
Message-id: <472B46E1.5040601@xxxxxxxx>
Wacek Kusnierczyk wrote:    (01)

> The Oxford Dic of Computing (not that I love this one), says:
> "asynchronous: invloving or requiring a form of computer control timing 
> protocol in which a specific operation is begun upon receipt of an 
> indication (signal) that the preceding operation has been completed, and 
> which indicates to a subsequent operation when it may begin."    (02)

Speaking as one who used to do communications programming for a living, 
I find that definition completely inscrutable.  But the problem is that 
the term "asynchronous" has been borrowed by several different 
electronic and software mechanisms in different architectures.    (03)

In general, two activities may be said to be "asynchronous" if there is 
NO timing relationship between them -- the start and stop times of each 
are irrelevant to the start and stop times of the other.  In any other 
case they are in some way "synchronized" -- there is some enforced 
relationship between their start and stop times, or more generally, 
between some point in one process and some point in another.  (And as 
Matt observed, the term "time" here is activity-relative -- it doesn't 
necessarily have anything to do with clocks.)    (04)

Physical signal communication is said to be "asynchronous" when there is 
no fixed timing relationship between the time the sender creates each of 
a sequence of signals and the time the receiver detects each signal in 
the sequence -- there is just a maximum and a minimum.  And conversely, 
"synchronous" communication requires the receiver to "learn" the 
sender's signalling interval and do its "level detection" only within 
the corresponding subintervals.    (05)

Logical communication extends the idea to messages.  It is "synchronous" 
if each time I send a message you have to tell me that it arrived 
intact, or not, and I wait for the acknowledgement before I try to send 
another message.  It is "asynchronous" if I can send a set of messages 
and get back acknowledgements when it pleases the receiver to send them.    (06)

Software architectures extend the latter idea to the relationship 
between a primary process and a subprocess.  The subprocess is 
"synchronous" if the primary process invokes/starts the subprocess and 
waits for the subprocess to finish/"return"/"respond" before the primary 
process does anything else.  And the subprocess is "asynchronous" if the 
primary process goes on to do other things and may at some later time 
look to see whether the subprocess is finished and possibly wait for it.    (07)

In the more general case, two or more processes are "asynchronous" if 
they are simultaneously "enabled" (allowed to start) but their actual 
start times may depend on other events.  (And "enabled" is a state, not 
an action, although it may result from an action; some (autonomous) 
processes are always enabled.)  They may run concurrently and along the 
way they may produce "broadcast signals" or "directed signals" that 
enable other processes in the set to determine that some state of the 
overall world has been achieved.  Starting and coming to an end are just 
some of those states.  And such processes may then also "wait" at some 
point in their own activity sequence for the receipt of such a signal 
from a sibling process.  Some engineers speak of these "waits" as 
"synchronization points"; others would argue that they are only really 
"synchronizations" if there is an exchange of signals that confirms that 
all the relevant processes have reached the same point before any of 
them continues.    (08)

[End of lecture #307. ;-)]    (09)

"Asynchronous" is one of those jargon words that has several very 
specific meanings.  You always have to at least consider the context of 
use in order to identify the intended meaning, and in many cases, you 
have to ask.  I note that this discussion began with just such a question.    (010)

-Ed    (011)

Edward J. Barkmeyer                        Email: edbark@xxxxxxxx
National Institute of Standards & Technology
Manufacturing Systems Integration Division
100 Bureau Drive, Stop 8263                Tel: +1 301-975-3528
Gaithersburg, MD 20899-8263                FAX: +1 301-975-4694    (012)

"The opinions expressed above do not reflect consensus of NIST,
  and have not been reviewed by any Government authority."    (013)

Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Subscribe/Config: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/  
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/ 
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (014)

<Prev in Thread] Current Thread [Next in Thread>