B. N. Bershad, T. E. Anderson, E. D. Lazowska and H. M

Slides:



Advertisements
Similar presentations
Processes and Threads Chapter 3 and 4 Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community College,
Advertisements

More on Processes Chapter 3. Process image _the physical representation of a process in the OS _an address space consisting of code, data and stack segments.
URPC for Shared Memory Multiprocessors Brian Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy ACM TOCS 9 (2), May 1991.
CS 149: Operating Systems February 3 Class Meeting
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.
Multiple Processor Systems
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented by Alana Sweat.
G Robert Grimm New York University Lightweight RPC.
CS533 Concepts of Operating Systems Class 8 Remote Procedure Call & LRPC.
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.
User Level Interprocess Communication for Shared Memory Multiprocessor by Bershad, B.N. Anderson, A.E., Lazowska, E.D., and Levy, H.M.
CS533 Concepts of Operating Systems Class 4 Remote Procedure Call.
Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, Henry M. Levy ACM Transactions Vol. 8, No. 1, February 1990,
USER LEVEL INTERPROCESS COMMUNICATION FOR SHARED MEMORY MULTIPROCESSORS Presented by Elakkiya Pandian CS 533 OPERATING SYSTEMS – SPRING 2011 Brian N. Bershad.
CS533 Concepts of Operating Systems Class 3 Integrated Task and Stack Management.
CS533 Concepts of Operating Systems Class 9 User-Level Remote Procedure Call.
1 Chapter 4 Threads Threads: Resource ownership and execution.
Threads. Processes and Threads  Two characteristics of “processes” as considered so far: Unit of resource allocation Unit of dispatch  Characteristics.
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)
CSE 451: Operating Systems Autumn 2013 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
Presentation by Betsy Kavali
Lightweight Remote Procedure Call (Bershad, et. al.) Andy Jost CS 533, Winter 2012.
Threads, Thread management & Resource Management.
Contact Information Office: 225 Neville Hall Office Hours: Monday and Wednesday 12:00-1:00 and by appointment.
Background: Operating Systems Brad Karp UCL Computer Science CS GZ03 / M th November, 2008.
Lightweight Remote Procedure Call BRIAN N. BERSHAD, THOMAS E. ANDERSON, EDWARD D. LASOWSKA, AND HENRY M. LEVY UNIVERSTY OF WASHINGTON "Lightweight Remote.
The Mach System Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne Presented by: Jee Vang.
Lecture 5: Threads process as a unit of scheduling and a unit of resource allocation processes vs. threads what to program with threads why use threads.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Networking Implementations (part 1) CPS210 Spring 2006.
LRPC Firefly RPC, Lightweight RPC, Winsock Direct and VIA.
Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy. Presented by: Tim Fleck.
Department of Computer Science and Software Engineering
The Mach System Silberschatz et al Presented By Anjana Venkat.
Brian Bershad, Thomas Anderson, Edward Lazowska, and Henry Levy Presented by: Byron Marohn Published: 1991.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
Scheduler activations Landon Cox March 23, What is a process? Informal A program in execution Running code + things it can read/write Process ≠
Threads prepared and instructed by Shmuel Wimer Eng. Faculty, Bar-Ilan University 1July 2016Processes.
Processes and Threads Chapter 3 and 4 Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community College,
Introduction to Operating Systems Concepts
CS533 Concepts of Operating Systems
Scheduler activations
Department of Computer Science University of California, Santa Barbara
CSE 451: Operating Systems Spring 2012 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
CS533 Concepts of Operating Systems Class 10
By Brian N. Bershad, Thomas E. Anderson, Edward D
Lecture 4- Threads, SMP, and Microkernels
Fast Communication and User Level Parallelism
Presented by Neha Agrawal
Presented by: SHILPI AGARWAL
CS510 - Portland State University
Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M
CS533 Concepts of Operating Systems Class 11
Contact Information Office: 225 Neville Hall Office Hours: Monday and Wednesday 12:00-1:00 and by appointment. Phone:
CSE 542: Operating Systems
Threads CSE 2431: Introduction to Operating Systems
Presentation transcript:

B. N. Bershad, T. E. Anderson, E. D. Lazowska and H. M B.N. Bershad, T.E. Anderson, E.D. Lazowska and H.M. Levy Lightweight Remote Procedure Call ACM Transactions on Computer Systems, Vol.8, No.1, February 1990, 37-55 Lanfranco Muzi PSU – April 21th, 2005

Presentation outline What is LRPC? O.S. communication – most common case LRPC execution model Performance of LRPC Conclusions

What is LRPC? A communication facility designed and optimized for communication between protection domains in the same machine Target: small-kernel operating systems separate components placed in disjoint domains messages used for interdomain communication

O.S. communication - the common case Cross-domain vs cross-machine Vast majority of calls do not cross machine boundaries

O.S. communication: the common case Size and complexity of calls ~70% 95% of calls to 10 procedures 75% to 3 procedures! Most frequent case: less than 200 bytes Vast majority of calls: small, simple arguments/results

O.S. communication: the common case Performance (I) “In existing RPC systems, cross- domain calls are implemented in terms of the facilities required by cross-machine ones”

O.S. communication: the common case Performance (II) “Theoretical minimum”: 2 traps and 2 context switches Overhead: stub, message buffer, access validation, message transfer (queues), scheduling (independent threads), context switches…

LRPC execution model Client binds to server before making first call Call causes kernel trap Kernel: validate caller, create linkage, dispatch client’s thread to server Thread executes in server Control (and thread) back to kernel and caller

Binding - 1 Different from RPC “Import” call from client via kernel Server provides Procedure Descriptor List, used by kernel to allocate A-stacks and create linkage record At completion, kernel returns to client a Binding object and A-stack list

Binding - 2 A-stack: Read-write and shared by both domains Linkage record: Records caller’s return address + current SP Binding object: Client’s key to interface (must be presented to kernel at every call)

Calling Client stub: Kernel: Pop A-stack off the queue, push arguments Put A-stack address, Binding Object and procedure identifier into registers Trap Kernel: Validation etc. Find E-stack in server domain and update user thread stack pointer Reload CPU virtual memory registers with those of the server domain

Optimization 1 Argument copying RPC A-stack LRPC A-stack: Read-write and shared by both domains

Optimization 2 Stub: choice between cross-domain or –machine in 1st line Validation: only on call (linkage is in thread’s control block on return) Scheduling in RPC: different threads in each domain signalling at each other (block client, dispatch in server…)

Optimization 3 Multiprocessors: Reduced lock contention: each A-queue has its own lock – no other locking required Reduced context-switch overhead: Domain caching on idle processors – move to idle CPU avoiding context switch

Performance of LRPC - 1 Average on 100,000 cross-domain calls LRPC/MP uses domain caching TAOS uses RPC Taos/LRPC ~= 3!

Performance of LRPC - 2 The “context switches” cost is what domain caching helps reduce Single processor: LRPC adds only 48ms

Call throughput on a multiprocessor Performance of LRPC - 3 Call throughput on a multiprocessor Domain caching disabled RPC scales poorly due to lock contention, which is very limited in LRPC

Conclusions LRPC adopts an optimized approach to the most common case in O.S. communication Performs well on the majority of PC between address spaces on the same machine Avoids unnecessary synchronization, kernel-level thread management and data copying LRPC performs better than RPC in the common case, and scales better on multiprocessors Authors conclude that it is a good communication alternative for small-kernel O.S. (further developments?)

References B.N Bershad et al. “Lightweight remote procedure call” ACM Trans. Comput. Syst. 8,1 (Feb.1990) 37-55 A.D. Birrel et al. “Implementing remote procedure calls” ACM Trans. Comput. Syst. 2,1 (Feb.1984) 39-59 B.N. Bershad et al. “User-level interprocess communication for shared memory multiprocessors” ACM Trans. Comput. Syst. 9,2 (May1991) 175-198 A.S. Tanenbaum “Modern Operating Systems” 2nd ed. Prentice Hall (RPC: 534-540) Silberschatz, Galvin, Gagne “Operating system concepts” 6th ed., John Wiley & Sons (RPC: 117-124) “Remote procedure calls” Pznan University of technology – Institute of computing Science http://skisr.cs.put.poznan.pl/download/rso/lec/w4_rpc.doc