Block-oriented
User process can process one block of data while next block is read in
Swapping can occur since input is taking place in system memory, not user memory
Operating system keeps track of assignment of system buffers to user processes
Output is accomplished by the user process writing a block to the buffer and later actually written out