Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!mailrus!wuarchive!usc!apple!uokmax!munnari.oz.au!goanna!ok From: ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) Newsgroups: comp.lang.misc Subject: Re: Query Message-ID: <3572@goanna.cs.rmit.oz.au> Date: 16 Aug 90 06:10:49 GMT References: <5754@uwm.edu> <126800007@.Prime.COM> Organization: Comp Sci, RMIT, Melbourne, Australia Lines: 32 In article <126800007@.Prime.COM>, EAF@.Prime.COM writes: > It depends on the way in which your computer buffers data. Many computers > double buffer data. That is they read it in as disk blocks and keep it > in main memory. That is *NOT* double buffering. That's buffering, pure and simple. Multiple buffering is when you have N buffers in memory (N > 1) and the operating system reads ahead, so that by the time you finish working on one buffer-full the next buffer-full has already been read for you without waiting, or writes behind, so that it is still writing out one buffer while you are filling the next (anyone remember LOCATE mode?). It's not a function of computers, either. It's a function of (operating systems) and (programing language runtime support libraries). The "stdio" package under UNIX typically does single buffering (a struct _iob contains one pointer to a buffer) with synchronous reads, however some versions of UNIX will do read-ahead and/or write-behind so that you get _some_ of the benefit of double buffering. The bottom line for the original poster is Use the high-level I/O operations provided in your programming language: READ and WRITE statements in Fortran, READ, READLN, WRITE, WRITELN, GET, PUT in Pascal, any function or macro in C, and Don't Panic! it's Someone Else's Problem (the programming language vendor's). -- The taxonomy of Pleistocene equids is in a state of confusion.