[comp.arch] Unix block I/O

torek@elf.ee.lbl.gov (Chris Torek) (04/04/91)

In article <00670398761@elgamy.RAIDERNET.COM> elg@elgamy.RAIDERNET.COM
(Eric Lee Green) writes:
>... If I recall right, the vast majority of Unix kernals basically
>do I/O a block at a time into cache RAM, then copy it by hand into
>the user's data buffers.

Mostly right.  Although mapping buffers copy-on-write is possible it
is often not cost-effective.  Also, the size of a `block' is not well
defined here; this makes a lot of difference.

>Some do pre-reading, which speeds sequential access, but puts random
>access into the doghouse

The code typically triggers off `the last read for this file was block
n, this one is block n+1, so get n+2', which avoids this (again it depends
on `block size', which typically varies from 512 to 65536 bytes).
-- 
In-Real-Life: Chris Torek, Lawrence Berkeley Lab CSE/EE (+1 415 486 5427)
Berkeley, CA		Domain:	torek@ee.lbl.gov