USENIX 2nd Symposium on
OS Design and Implementation (OSDI '96)
Effects of Buffering Semantics on I/O Performance
Jose' Carlos Brustoloni and
Peter Steenkiste
Carnegie Mellon University
Abstract
We present a novel taxonomy that characterizes in a structured
way the software and hardware tradeoffs for I/O data passing
between applications and operating system.
This work contributes new techniques, input-disabled
pageout, transient output copy-on-write, and input alignment,
that are used for copy avoidance in an optimized buffering semantics,
emulated copy. Emulated copy offers the same API and integrity guarantees
as those of copy semantics and, therefore, can transparently replace it.
We implemented an I/O framework, Genie, that allows applications to select
any semantics in the taxonomy.
Using Genie for communication between PCs and AlphaStations
over an ATM network at 155 Mbps,
we found that all non-copy semantics performed similarly, and that
only copy semantics had distinctly inferior performance.
We analyzed end-to-end latencies in terms of the costs of
primitive data passing operations and modeled how those costs scale
with CPU, memory, and network speeds. The analysis suggests that
current trends tend to intensify the observed performance clustering.
The main conclusion is that existing I/O interfaces with copy semantics,
such as that of Unix, can be transparently converted to emulated copy
semantics and thus
achieve performance comparable to the best obtainable with any
semantics in the taxonomy.
|