Evaluation of data passing and scheduling avoidance
José Carlos Brustoloni, Peter Steenkiste · 2002
Multimedia applications often transfer data between devices or output the same data to multiple devices at very high rates, and therefore require an efficient I/O subsystem. Data copying and context switching have long been identified as sources of I/O inefficiency, and consequently there have been many proposals of: (1) copy avoidance techniques, which pass data between application and system buffers without copying; (2) data passing avoidance techniques, which allow applications to perform multiple I/O operations on system buffers, without passing data to or from application buffers; and (3) scheduling avoidance techniques, which allow multiple I/O operations on system buffers to proceed at interrupt level, without scheduling. Adoption of such optimizations remains limited because most require major changes in the API or structure of existing operating systems. The authors recently proposed, however, new copy avoidance techniques, emulated copy and emulated share, which, unlike previous work, require no such changes. In their experiments, copy avoidance optimizations gave performance improvements almost as good as or better than those of data passing avoidance, and scheduling avoidance provided only modest performance improvements over priority scheduling. Their results suggest that the I/O performance of conventional operating systems can be greatly improved without the major changes in API or organization commonly advocated.