Summary: Lker-Level Interprocess Communication
for Shared Memory Multiprocessors
BRIAN N. BERSHAD
Carnegie Mellon University
THOMAS E. ANDERSON, EDWARD D. LAZOWSKA, and HENRY M. LEVY
University of Washington
Interprocess communication (IPC), in particular IPC oriented towards local cornmzmzcation
(between address spaces on the same machine), has become central to the design of contemporary
operating systems. IPC has traditionally been the responsibility of the kernel, but kernel-based
IPC has two inherent problems First, its performance is architecturally limited by the cost of
invoking the kernel and reallocating a processor from one address space to another. Second,
applications that need inexpensive threads and must provide their own thread management
encounter functional and performance problems stemming from the interaction between kernel-
level communication and user-level thread management.
On a shared memory multiprocessor, these problems can be solved by moving the communica-
tion facilities out of the kernel and supporting them at the user level within each address space.
Communication performance is improved since kernel invocation and processor reallocation can
be avoided when communicating between address spaces on the same machine.
These observations motivated User-Level Remote Procedure Call (URPC) URPC combines a
fast cross-address space communication protocol using shared memory with lightweight threads