async I/O (was: Is there a select()-like call for message queues?)

Peter da Silva peter at ficc.uu.net
Wed Jan 17 04:44:53 AEST 1990


In article <11956 at smoke.BRL.MIL> gwyn at brl.arpa (Doug Gwyn) writes:
> One thing that was appreciated in the computer science research community
> during the 1970s was that forcing applications to explicitly deal with
> asynchronism had been causing numerous reliability problems.

First, a nitpick. By 1974 UNIX was basically in its current form, and its
design goals must have been established earlier than that. But that's just
a nitpick.

Secondly, I'm not suggesting that applications be forced to explicitly
deal with asynchronism. I just believe that since the real world is
asynchronous you should be able to deal with it.

Also, the event-loop construct has considerable success in the real world
for dealing with asynchronous events. I've worked in the process control
industry for the past 10 years, and UNIX has effectively zero penetration
simply because it doesn't allow for processes to handle asynchronous events.

> UNIX loosely followed the CSP notion, wherein individual processes are
> strictly sequential but can communicate with concurrent processes to
> achieve controlled asynchronity.  The UNIX kernel manages the actual
> asynchronous operations and converts them into the per-process sequential
> I/O model.

Unfortunately, UNIX doesn't support a sufficiently fine-grained process
structure to allow this to be generally used. Systems like Mach do, but
they do it by pretty much abandoning the UNIX model.

Or you can implement a fineer grained process structure within a UNIX
process, but to do that effectively you need asynchronous I/O.

> Rob Pike has shown in an article in a recent issue of Computing Systems
> how the CSP model can be applied to graphical windowing environments,
> with the result of dramatically simplifying the design of applications
> in such environments.

I'm sure it can. But not under UNIX as it exists, and not under any
extension of UNIX that I've seen that still remains close to the source.
-- 
 _--_|\  Peter da Silva. +1 713 274 5180. <peter at ficc.uu.net>.
/      \
\_.--._/ Xenix Support -- it's not just a job, it's an adventure!
      v  "Have you hugged your wolf today?" `-_-'



More information about the Comp.unix.questions mailing list