An Efficient Zero-Copy I/O Framework for UNIX

Yousef A. Khalidi, Moti N. Thadani · 1995

Traditional UNIX - I/O interfaces are based on copy semantics, where read and write calls transfer data between the kernel and user-defined buffers. Although simple, copy semantics limit the ability of the operating system to efficiently implement data transfer operations. In this paper, we present extensions on the traditional UNIX interfaces that are based on explicit buffer exchange. Instead of transferring data between user-defined buffers and the kernel, the new extensions transfer data buffers between the user and the kernel. We study using the new interfaces in typical application programs, and compare their use to the stan-dard UNIX interfaces. The new interfaces lend themselves to an efficient zero-copy data transfer implementation. We describe such an implementation in this paper, and we examine its performance. The implementation, done in the context of the SolarisTM operating system, is very efficient: for example, on a typical file transfer benchmark, the network throughput was improved by more than 40% and the CPU utilization reduced by more than 20%.

Read the paper · More papers on PaperTik