ComputingComputer EngineeringComputer ScienceComputer ArchitectureHardware-software Co-designOperating SystemsInstruction Set ArchitectureInterprocess CommunicationKernel ArchitectureKernel DesignKernel ProgrammingRemote Procedure CallAddress Space ManagementInter-process CommunicationKernel Performance OptimizationMicrokernel ArchitectureProcessor ArchitectureVirtual Address Space
Fast, efficient IPC is essential for modern operating systems, particularly μ‑kernels, and the techniques discussed apply broadly to general‑purpose von Neumann processors. The study aims to guide kernel design around IPC requirements and leverage virtual address space within the μ‑kernel to achieve substantial performance gains, as demonstrated by the L3 experiment. High IPC performance is achieved through a synergistic, multi‑level design and implementation strategy, exemplified by its application to the L3 μ‑kernel. The authors achieved a twenty‑fold IPC speedup, reducing message transfer from 100 µ.
Inter-process communication (ipc) has to be fast and effective, otherwise programmers will not use remote procedure calls (RPC), multithreading and multitasking adequately. Thus ipc performance is vital for modern operating systems, especially μ-kernel based ones. Surprisingly, most μ-kernels exhibit poor ipc performance, typically requiring 100 μs for a short message transfer on a modern processor, running with 50 MHz clock rate.In contrast, we achieve 5 μs; a twentyfold improvement.This paper describes the methods and principles used, starting from the architectural design and going down to the coding level. There is no single trick to obtaining this high performance; rather, a synergetic approach in design and implementation on all levels is needed. The methods and their synergy are illustrated by applying them to a concrete example, the L3 μ-kernel (an industrial-quality operating system in daily use at several hundred sites). The main ideas are to guide the complete kernel design by the ipc requirements, and to make heavy use of the concept of virtual address space inside the μ-kernel itself.As the L3 experiment shows, significant performance gains are possible: compared with Mach, they range from a factor of 22 (8-byte messages) to 3 (4-Kbyte messages). Although hardware specific details influence both the design and implementation, these techniques are applicable to the whole class of conventional general purpose von Neumann processors supporting virtual addresses. Furthermore, the effort required is reasonably small, for example the dedicated parts of the μ-kernel can be concentrated in a single medium sized module.
20
Implementing remote procedure calls
Andrew Birrell, Bruce Jay Nelson · ACM Transactions on Computer Systems · 1984 · 1.8K citations · Full text
Mach: A New Kernel Foundation for UNIX Development.
Michael J. Accetta, R. Baron, William J. Bolosky et al. · USENIX Summer · 1986 · 919 citations
The V Kernel: A Software Base for Distributed Systems
David R. Cheriton · IEEE Software · 1984 · 357 citations
Why Aren't Operating Systems Getting Faster As Fast as Hardware?
John K. Ousterhout · 1990 · 338 citations
An Architectural Overview of QNX
Dan Hildebrand · 1992 · 201 citations