Compared to kernel-level servers, user-level ones can be debugged and maintained more easily and safely, but traditionally have had much worse performance. We describe a novel I/O-oriented inter-proces communication (IPC) facility that combines the emulated copy data passing scheme for monolithic systems with new copy avoidance techniques for microkernel systems. Unlike previous optimizations, I/O-oriented IPC does not require changes in existing user applications or complex restructuring of servers; it offers an API with copy semantics and allows the same servers to be installed at kernel or user level. In end-to-end experiments on an ATM network at 512 Mbps, I/O-oriented IPC gave user-level protocol servers performance approaching that of kernel-level ones. Performance differences scaled roughly inversely to the processor's SPECint95 rating, projecting fast further improvement.
展开▼