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)
|