Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!cwjcc!hal!nic.MR.NET!umn-cs!berlin!grg From: grg@berlin.acss.umn.edu (George Gonzalez) Newsgroups: comp.sys.mac.programmer Subject: Re: Apple HD SC 80 does not support Asynch i/o. Summary: ASync I/O not too useful on the Mac right now... Keywords: Hall of Shame entry? Message-ID: <271@berlin.acss.umn.edu> Date: 3 Jan 89 16:24:17 GMT References: <11605@dartvax.Dartmouth.EDU> Organization: U of M MicroGroup, Minneapolis Lines: 27 Asynchronous I/O is a wonderful idea if you have a true pre-emptive multi- tasking system. The system can start an I/O request, and run another task while waiting for the I/O to complete. This means tasks get more CPU time; less time is spent waiting for I/O. If its done right, the tasks need not know or worry about the I/O being done asyncronously. Just wonderful. But the current Mac O/S can't make good, general use of async I/O right now. In general, there isn't another task that can be run while waiting for the I/O. Even under Multi-Finder, the system can't preeemtively switch tasks when doing I/O. So async disk I/O is mostly pointless right now. One exception: if you are a clever programmer, you *can* write a program that starts an async disk operation and then goes and does something useful while waiting for the I/O. But this is a special case that speeds up just your special program. It doesnt help the rest of us sods waiting for the Finder to copy a file. It doesnt help the 1000+ other applications out there either. The current Mac O/S puts the async I/O burden on the programmer. This is a bit less than perfect, as async I/O code is somewhat tricky. I'd hate to see 1000 different applications implementing async I/O, all in slightly different, and possibly buggy ways. Ideally, they would have built async I/O into the system so we wouldnt have to discuss it now. Maybe a future version of the system will do just that. I suspect A/UX does it right now. So, let's not worry to much about some disks drives/drivers not supporting async I/O right now. Its not too useful for most of us at this time.