This article presents the design, implementation, and evaluation of IO-Lite
, a unified I/O buffering and caching system for general-purpose operating
systems. IO-Lite unifies all buffering and caching in the system, to the ex
tent permitted by the hardware. In particular, it allows applications, the
interprocess communication system, the file system, the file cache, and the
network subsystem to safely and concurrently share a single physical copy
of the data. Protection and security are maintained through a combination o
f access control and read-only sharing. IO-Lite eliminates all copying and
multiple buffering of I/O data, and enables various cross-subsystem optimiz
ations. Experiments with a Web server show performance improvements between
40 and 80% on real workloads as a result of IO-Lite.