Asynchronous I/O on UNIX?

n paul at unisoft.UUCP
Sat Nov 30 12:14:24 AEST 1985


<oog>

	I too would like to see some form of async I/O under Unix, after
all VMS and even RT11 and the macintosh!! have it.

	The main reason I see against it is that it would massively complicate
unix's very simple user interface (read, when you are done reading do something
else ...). On the other hand you could avoid the problems with some utilities
that have to use more than 1 process to do some very simple things (cu for
example runs 2 processes, one each way, typing a character results in 2
process switches!!!!).

	The major problem in implementation under Unix is the concept of IO
context, with Unix an IO's context (u_base, u_count, u_offset) are in a
processes 'udot' if you are going to be doing multiple IO's you need to be
able to send this information to the device with the queued IO (you also have
to send the process ID, the completion routine's virtual address and the
parameter you are going to give to the completion routine). There is also
and amazing amount of internal synchonisation work needs to be done in the
kernel. And while you are doing that you may as well make it orthoganol
so that all the system calls can have completion routines.

	Rats!! It seemed so easy!! Still it would be nice to see it done ....
sigh ....


		Paul Campbell
		..!ucbvax!unisoft!paul



More information about the Comp.unix mailing list