Lightweight remote procedure call

Lightweight Remote Procedure Call (LRPC) is a communication facility designed and optimized for communication between protection domains on the same machine. In contemporary small-kernel operating systems, existing RPC systems incur an unnecessarily high cost when used for the type of communication that predominates—between protection domains on the same machine. This cost leads system designers to coalesce weakly related subsystems into the same protection domain, trading safety for performance. By reducing the overhead of same-machine communication, LRPC encourages both safety and performance. LRPC combines the control transfer and communication model of capability systems with the programming semantics and large-grained protection model of RPC. LRPC achieves a factor-of-three performance improvement over more traditional approaches based on independent threads exchanging messages, reducing the cost of same-machine communication to nearly the lower bound imposed by conventional hardware. LRPC has been integrated into the Taos operating system of the DEC SRC Firefly multiprocessor workstation.

[1]  Jack B. Dennis,et al.  Programming semantics for multiprogrammed computations , 1966, CACM.

[2]  David Clark The structuring of systems using upcalls , 1985, SOSP 1985.

[3]  Michael Burrows,et al.  Performance of Firefly RPC , 1989, SOSP '89.

[4]  Robert P. Fitzgerald,et al.  A performance evaluation of the integration of virtual memory management and inter-process communication in accent (operating system, copy-on-write) , 1986 .

[5]  Ken Thompson,et al.  The UNIX time-sharing system , 1974, CACM.

[6]  Butler W. Lampson,et al.  Hints for Computer System Design , 1983, IEEE Software.

[7]  Lawrence C. Stewart,et al.  Firefly: a multiprocessor workstation , 1987, ASPLOS 1987.

[8]  George H. Mealy The Functional Structure of OS/360 Part I: Introductory Survey , 1966, IBM Syst. J..

[9]  Yogen K. Dalal,et al.  Pilot: an operating system for a personal computer , 1980, CACM.

[10]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[11]  David R. Cheriton,et al.  The V distributed system , 1988, CACM.

[12]  Richard F. Rashid From RIG to Accent to Mach: An Evolution of a Network Operating System , 1986, FJCC.

[13]  Dan Walsh,et al.  Design and implementation of the Sun network filesystem , 1985, USENIX Conference Proceedings.

[14]  H. MealyG. The functional structure of OS/360 , 1966 .

[15]  Paul A. Karger Using registers to optimize cross-domain call performance , 1989, ASPLOS 1989.

[16]  Robbert van Renesse,et al.  Performance of the world's fastest distributed operating system , 1988, OPSR.

[17]  David P. Anderson,et al.  A Performance Evaluation of the Dash Message-Passing System , 1988 .

[18]  Richard F. Rashid,et al.  Mach and Matchmaker: kernel and language support for object-oriented distributed systems , 1986, OOPSLA 1986.