skip to main content
article
Free access

Lightweight remote procedure call

Published: 01 February 1990 Publication History

Abstract

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.

References

[1]
BIRRELL, A. D., AND NELSON, B.J. Implementing remote procedure calls.ACM Trans. Comput. Syst. 2, 1 (Feb. 1984), 39-59.
[2]
CHERITON, D.R. The V distributed system. Commun. ACM 31, 3 (Mar. 1988), 314-333.
[3]
CLARK, D. D. The structuring of systems using upcalls. In Proceedings of the l Oth A CM Symposium on Operating Systems Principles (Orcas Is., Wash., Dec. 1-4, 1985), ACM, New York, 1985, pp. 171-180.
[4]
COOK, D. The evaluation of a protection system. Ph.D. dissertation, Computer Laboratory, Cambridge Univ., Cambridge, U.K., Apr. 1978.
[5]
DENNIS, J. B., AND VAN HORN, E.C. Programming semantics for multiprogrammed computations. Commun. ACM 9, 3 (Mar. 1966), 143-155.
[6]
FITZGERALD, R.P. A performance evaluation of the integration of virtual memory management and inter-process communication in Accent. Ph.D. dissertation, Department of Computer Science, Carnegie-Mellon Univ., Pittsburgh, Pa., Oct. 1986.
[7]
JONES, M. B., AND RASHID, R.F. Mach and Matchmaker: Kernel and language support for object-oriented distributed systems. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (Portand, Ore., Sept. 29-Oct. 2, 1986), pp. 67-77.
[8]
KARGER, P.A. Using registers to optimize cross-domain call performance. In Proceedings of the 3rd Conference on Architectural Support for Programming Languages and Operating Systems (Boston, Mass, Apr. 3-6, 1989), pp. 194-204.
[9]
LAMPSON, B.W. Hints for computer system design. IEEE Softw. 1, 1 (Jan. 1984), 11-28.
[10]
MEALY, G., WITT, B., AND CLARK, W. The functional structure of 0S/360. IBM Syst. J. 5, 1 (Jan. 1966), 3-51.
[11]
RASHID, R.F. From Rig to Accent to Mach: The evolution of a network operating system. In Proceedings of ACM/IEEE Computer Society Fall Joint Computer Conference (Dallas, Tex., Nov. 1986). ACM, New York, 1986.
[12]
REDELL, D. D., DALAL, Y. K., HORSLEY, T. R., LAUER, H. C., LYNCH, W. C, MCJONES, P. R., MURRAY, H, G., AND PURCELL, S, C. Pilot: An operating system for a personal computer. Commun. ACM 23, 2 (Feb. 1980), 81-92.
[13]
RITCHIE, D., AND THOMPSON, K. The Unix time-sharing system. Commun. ACM 17, 7 (July 1974), 365-375.
[14]
ROVNER, P., LEVlN, R., AND WICK, J. On extending Modula-2 for building large, integrated systems. Tech. Rep. 3, Digital Equipment Corporation Systems Research Center, Palo Alto, Calif., Jan. 1985.
[15]
SANDBERG, R., GOLDBERG, D., S. KLEIMAN, D. W., AND LYON, S. Design and implementation of the SUN network filesystem. In Proceedings of the 1985 USENIX Summer Conference, pp. 119-130.
[16]
SCHROEDER, M. D., AND BURROWS, M. Performance of Firefly RPC. In Proceedings of the 12th ACM Symposium on Operating Systems Principles (Litchfield Port, Ariz., Dec. 3-6, 1989). ACM, New York, 1989, pp. 83-90.
[17]
THACKER, C. P., STEWART, L. C., AND SATTERTHWAITE, E. H., JR. Firefly: A multiprocessor workstation. IEEE Trans. Comput. 37, 8 (Aug. 1988), 909-920.
[18]
Tzou, S.-Y., AND ANDERSON, D.P. A performance evaluation of the DASH message-passing system. Tech. Rep. UCB/CSD 88/452, Computer Science Division, Univ. of California, Berkeley, Oct. 1988.
[19]
VAN RENESSE, R., VAN STAVEREN, H., AND TANENBAUM, A. S. Performance of the world's fastest distributed operating system. Oper. Syst. Rev. 22, 4 (Oct. 1988), 25-34.
[20]
WILLIAMSON, C., Personal communication, Jan. 1989.

Cited By

View all

Recommendations

Reviews

Brett D. Fleisch

The lightweight remote procedure call (LRPC) facility was designed and optimized for intermachine communication. LRPC exploits the fact that the common case of same-machine communication passing small, simple arguments can have significantly better performance than a more general remote procedure call (RPC) mechanism. In RPC, local communication is treated as an instance of remote communication, and simple operations are treated similarly to more complex operations. This aspect of RPC violates a basic tenet of system design by failing to isolate and optimize performance for the common case. Four techniques used in LRPC to improve the performance of RPC systems are described: simplified control transfer, simplified data transfer using sharing techniques, optimized stubs, and optimizations for multiprocessors. Each of these techniques is explained in the context of an implementation on the C-VAX Firefly workstation. Performance measurements and comparisons examine where time is being spent in the implementation and how the optimizations affect performance. Perhaps even more important, the authors carefully consider the effects on LRPC of a number of uncommon cases. LRPC has to accommodate the uncommon cases gracefully and with acceptable performance. This paper is the result of state-of-the-art research into the form and structure of remote procedure call systems. It is intended for readers with a background in operating systems and programming languages and for people actively researching this area. The paper indisputably presents original and thoughtful insights on the issues. A possible weakness is in Section 2.1, where the paper uses a personal communication for a reference. The basic point of the section is well taken, however, and most of the background references can be located in the published literature.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Computer Systems
ACM Transactions on Computer Systems  Volume 8, Issue 1
Feb. 1990
82 pages
ISSN:0734-2071
EISSN:1557-7333
DOI:10.1145/77648
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 February 1990
Published in TOCS Volume 8, Issue 1

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)159
  • Downloads (Last 6 weeks)40
Reflects downloads up to 18 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media