Lightweight Remote Procedure Call BRIAN N. BERSHAD, THOMAS E. ANDERSON, EDWARD D. LASOWSKA, AND HENRY M. LEVY UNIVERSTY OF WASHINGTON "Lightweight Remote.

Slides:



Advertisements
Similar presentations
Northwestern University 2007 Winter – EECS 443 Advanced Operating Systems Exokernel: An Operating System Architecture for Application-Level Resource Management.
Advertisements

URPC for Shared Memory Multiprocessors Brian Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy ACM TOCS 9 (2), May 1991.
User-Level Interprocess Communication for Shared Memory Multiprocessors Bershad, B. N., Anderson, T. E., Lazowska, E.D., and Levy, H. M. Presented by Akbar.
CS 443 Advanced OS Fabián E. Bustamante, Spring 2005 Lightweight Remote Procedure Call B. Bershad, T. Anderson, E. Lazowska and H. Levy U. Of Washington.
Fast Communication Firefly RPC Lightweight RPC  CS 614  Tuesday March 13, 2001  Jeff Hoy.
Lightweight Remote Procedure Call BRIAN N. BERSHAD THOMAS E. ANDERSON EDWARD D. LAZOWSKA HENRY M. LEVY Presented by Wen Sun.
Microkernels How to build a dependable, modular and secure operating system?
Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented by Alana Sweat.
Extensibility, Safety and Performance in the SPIN Operating System Department of Computer Science and Engineering, University of Washington Brian N. Bershad,
G Robert Grimm New York University Lightweight RPC.
CS533 Concepts of Operating Systems Class 8 Remote Procedure Call & LRPC.
CS533 Concepts of Operating Systems Class 20 Summary.
User-Level Interprocess Communication for Shared Memory Multiprocessors Bershad, B. N., Anderson, T. E., Lazowska, E.D., and Levy, H. M. Presented by Chris.
SCHEDULER ACTIVATIONS Effective Kernel Support for the User-level Management of Parallelism Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska, Henry.
CS533 Concepts of Operating Systems Class 8 Shared Memory Implementations of Remote Procedure Call.
CS533 Concepts of Operating Systems Class 12 Micro-kernels (or Extensibility via Hardware-Based Protection)
User Level Interprocess Communication for Shared Memory Multiprocessor by Bershad, B.N. Anderson, A.E., Lazowska, E.D., and Levy, H.M.
Dawson R. Engler, M. Frans Kaashoek, and James O'Tool Jr.
CS533 Concepts of Operating Systems Class 4 Remote Procedure Call.
CS 416 Operating Systems Design Spring 2008 Liviu Iftode
Improving IPC by Kernel Design Jochen Liedtke Presented by Ahmed Badran.
Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, Henry M. Levy ACM Transactions Vol. 8, No. 1, February 1990,
Learning Objectives Understanding the difference between processes and threads. Understanding process migration and load distribution. Understanding Process.
USER LEVEL INTERPROCESS COMMUNICATION FOR SHARED MEMORY MULTIPROCESSORS Presented by Elakkiya Pandian CS 533 OPERATING SYSTEMS – SPRING 2011 Brian N. Bershad.
Outcomes What is RPC? The difference between conventional procedure call and RPC? Understand the function of client and server stubs How many steps could.
CS533 Concepts of Operating Systems Class 12 Micro-kernels (or Extensibility via Hardware-Based Protection)
Early OS security Overview by: Greg Morrisett Cornell University, Edited (by permission) for CSUS CSc250 by Bill Mitchell.
User-Level Interprocess Communication for Shared Memory Multiprocessors Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented.
Threads CS 416: Operating Systems Design, Spring 2001 Department of Computer Science Rutgers University
CS533 Concepts of Operating Systems Class 4 Remote Procedure Call.
Remote Procedure Calls Taiyang Chen 10/06/2009. Overview Remote Procedure Call (RPC): procedure call across the network Lightweight Remote Procedure Call.
Optimizing RPC “Lightweight Remote Procedure Call” (1990) Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, Henry M. Levy (University of Washington)
1 Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska and Henry M. Levy Presented by: Karthika Kothapally.
CS533 Concepts of Operating Systems Class 9 Lightweight Remote Procedure Call (LRPC) Rizal Arryadi.
CS510 Concurrent Systems Jonathan Walpole. Lightweight Remote Procedure Call (LRPC)
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
Lightweight Remote Procedure Call (Bershad, et. al.) Andy Jost CS 533, Winter 2012.
CS533 Concepts of Operating Systems Jonathan Walpole.
CS533 Concepts of Operating Systems Jonathan Walpole.
Processes and Threads CS550 Operating Systems. Processes and Threads These exist only at execution time They have fast state changes -> in memory and.
Computers Operating System Essentials. Operating Systems PROGRAM HARDWARE OPERATING SYSTEM.
Ch7d- 2 EE/CS/CPE Computer Organization  Seattle Pacific University Individual Space Every process wants its own space Ideally, it would like.
Computer Science Lecture 7, page 1 CS677: Distributed OS Multiprocessor Scheduling Will consider only shared memory multiprocessor Salient features: –One.
The Mach System Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Presentation By: Agnimitra Roy.
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
Networking Implementations (part 1) CPS210 Spring 2006.
Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy. Presented by: Tim Fleck.
6.894: Distributed Operating System Engineering Lecturers: Frans Kaashoek Robert Morris
Brian Bershad, Thomas Anderson, Edward Lazowska, and Henry Levy Presented by: Byron Marohn Published: 1991.
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
CS533 Concepts of Operating Systems Jonathan Walpole.
Running Commodity Operating Systems on Scalable Multiprocessors Edouard Bugnion, Scott Devine and Mendel Rosenblum Presentation by Mark Smith.
Processes Chapter 3. Processes in Distributed Systems Processes and threads –Introduction to threads –Distinction between threads and processes Threads.
Kernel Design & Implementation
CS 6560: Operating Systems Design
The Multikernel: A New OS Architecture for Scalable Multicore Systems
CS533 Concepts of Operating Systems
OS Organization Continued
CS490 Windows Internals Quiz 2 09/27/2013.
B. N. Bershad, T. E. Anderson, E. D. Lazowska and H. M
Sarah Diesburg Operating Systems COP 4610
CS533 Concepts of Operating Systems Class 10
By Brian N. Bershad, Thomas E. Anderson, Edward D
Fast Communication and User Level Parallelism
Presented by Neha Agrawal
Presented by: SHILPI AGARWAL
Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M
CS533 Concepts of Operating Systems Class 11
Operating Systems Structure
CSE 542: Operating Systems
Presentation transcript:

Lightweight Remote Procedure Call BRIAN N. BERSHAD, THOMAS E. ANDERSON, EDWARD D. LASOWSKA, AND HENRY M. LEVY UNIVERSTY OF WASHINGTON "Lightweight Remote Procedure Call" "Lightweight Remote Procedure Call" by B. N. Bershad, T. E. Anderson, E. D. Lazowska, and H. M. Levy, Proceedings of the 12th Symposium on Operating Systems Principles, pp , December PRESENTER: ALIREZA GOUDARZI Jan 27, 2010 CS 533, Winter 2020, John Walpole

Waves of Computing Paradigms Centralized Virtualization & Cloud Distributed Limited capacity, expensive, hard to manage, low reliability …. Ubiquitous computing You are here

Distributed Computing OS Machine RPC: Inter-machine communication with abstraction of a procedure call. Each machine run a monolithic kernel OS Distributed application talk to each other Machines ( OS ) talk to each other Domain of protection is an entire machine OS internally is one piece OS Machine OS Machine OS Machine

Emergence of Microkernel in OS Modularity correctness hit the kernel atmosphere From Wikipedia :

Microkernel Implications Separate components Separate protection domains – Might or might now sharing the same address space Component inter-comm. in a shared memory  conventional IPC What’s wrong with that ?

IPC way too much coupling between components – Logic and semantics of components are exposed Defies the purpose of modular design Difficult to use Control flow transfer is awkward ? You are here What’s the problem?

THE BIG PROBLEM Control flow transfer Data transfer Separate address space On a same memory space

RPC Syntax of a procedure call Semantics of a procedure call But!....

RPC : Control Flow / Data Transfer ClientKernel Server 4 context switch, 4 buffer copy, expensive access validation, expensive stubs Expensive scheduling Different naming but gist of it is that these are separate address spaces ( might be in the same shared memory or not ) and to give them access to the data you have to copy the data back and forth Any Alternatives?

Protected Procedure Call Each object is protected with an Access Control List (ACL) Different objects can access each other if their have the right permission to another object. Then an object can call a procedure if it has sufficient right to do so. But….

Protected Procedure Call It is just a procedure call. Within a single address space address space / protection domain => NO REAL IPC

Solution Lightweight Remote Procedure Call IPC semantics of remote procedure call Efficiency of protected procedure call + =

Lightweight-RPC : The Middle Way Observations in RPC systems : – Most communications are not cross-machines – Most attributes are simple not complex LRPC as a RPC exploiting the single machine boundary.

Main Gains Simple control transfer ( b/w addr. spaces) Simple data transfer ( b/w addr. spaces) Simple stubs ( low overhead ) Designing with single-machine-concurrency in mind.

LRPC Call: Control Flow Transfer Procedure Call ( hand-off scheduling) Semantics imply we can safely bypass scheduler ! Why? We can invoke the server procedure with only one formal call !!! How?

LRPC: Call Client Stub Kernel Stub Server A-Stack L-StackE-Stack P-ID U-thread + Server Stack 2- Copy of Param. 1- call 3 – prepare the context 4-upcall

LRPC Call : Multiprocessor TLB miss problem in server domain CPU context caching in multiprocessor system CPU idles on server / client domain – CPU context migration is cheaper than flushing and reloading TLB No locks only one for each A-stack queue in client stub.

LRPC: Binding How does validation work? ( call / return ) How does client find the server? How does kernel allocate and manage memory?

LRPC Binding: Client Import Client Stub Kernel Stub Server 1- registration 2- listening A-Stack 3- request Binding O 4- binding L-StackE-Stack PDL 3- response

Special Cases Between Machine Calls Complex/Large Params. Termination

Q & A You are here