Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!uwm.edu!zaphod.mps.ohio-state.edu!sdd.hp.com!hplabs!hpda!hpcuhb!hpcllla!hpclisp!hpcljms!brians From: brians@hpcljms.HP.COM (Brian Sullivan) Newsgroups: comp.lang.misc Subject: Re: UNIX semantics do permit full support for asynchronous I/O Message-ID: <960022@hpcljms.HP.COM> Date: 30 Aug 90 22:54:31 GMT References: <27619@nuchat.UUCP> Organization: Hewlett-Packard Calif. Language Lab Lines: 21 > Have read(2) and write(2) calls map the pages containing the buffers > out of the user address space and return immediately. Once the > data have been copied (DMAed?) to/from the buffers, map the pages back in. Well, I suspect that this solution will not work with most C programs. Why, because most of the time read(2) and write(2) are called with a buffer that is an auto-variable or stack allocated. Telling the MMU to unmap a page in the users stack will have very dire consequences. Maybe a better idea would be a new memory allocation, combined with new read(2) and write(2) calls. Using this method the need to copy the users data would be solved. kalloc : allocate pages in kernal memory kwrite : perform write without copying memory into kernal data area kread : perform read without copying memory into kernal data area You might want to investigate the POSIX working group P1003.4 which deals with real-time issues. They are creating the next generation UNIX standard that will support threads, async_io, real-time scheduling and other real-time issues.