Xref: utzoo comp.lang.misc:5421 comp.unix.wizards:23671 Path: utzoo!attcan!ncrcan!scocan!seanf From: seanf@sco.COM (Sean Fagan) Newsgroups: comp.lang.misc,comp.unix.wizards Subject: Re: UNIX does *not* fully support asynchronous I/O Message-ID: <1990Aug27.223445.4474@sco.COM> Date: 28 Aug 90 02:34:45 GMT References: <126800008@.Prime.COM> <60345@lanl.gov> <1990Aug21.223350.7595@esegue.segue.boston.ma.us> <11576:Aug2503:18:3790@kramden.acf.nyu.edu> Reply-To: seanf@sco.COM (Sean Fagan) Distribution: usa Organization: The Santa Cruz Operation, Inc. Lines: 32 In article <11576:Aug2503:18:3790@kramden.acf.nyu.edu> brnstnd@kramden.acf.nyu.edu (Dan Bernstein) writes: >Say a program computes some numbers. Computes them optimally, in fact, >leaving them in an array. Now it wants to write the array to disk. > >If the operating system weren't in the way, the program would simply >call upon the disk device to copy the data---through DMA, of course---to >the disk. Uhm, *where* is it going to put it? Or does the user program just automagically know which sectors on the disk are free to write in, and, of course, it's going to up date the inode information properly, and all directory information. Having worked on an OS that does to asynchronous I/O quite well (NOS, for those who don't read comp.arch 8-)), it's a bit different from what brnstnd says. Under NOS, you tell the OS you want to write some data to disk (or tape, or whatnot); you set a bit in the instruction words (each request needs a block of data describing the file and data) on whether you wish to return immediately or not. You then write the "syscall number" into word 0, and one of the I/O processors will pick it up, and act accordingly. Note that unix machines generally don't have the I/O processors capable of this much intelligence. (Sorry, an 8259 won't cut it.) -- Sean Eric Fagan | "let's face it, finding yourself dead is one seanf@sco.COM | of life's more difficult moments." uunet!sco!seanf | -- Mark Leeper, reviewing _Ghost_ (408) 458-1422 | Any opinions expressed are my own, not my employers'.