Remote Procedure Call Andy Wang Operating Systems COP 4610 / CGS 5765.

Slides:



Advertisements
Similar presentations
RPC Robert Grimm New York University Remote Procedure Calls.
Advertisements

Remote Procedure Call (RPC)
Remote Procedure Call Design issues Implementation RPC programming
©2009 Operačné systémy Procesy. 3.2 ©2009 Operačné systémy Process in Memory.
User-Level Interprocess Communication for Shared Memory Multiprocessors Bershad, B. N., Anderson, T. E., Lazowska, E.D., and Levy, H. M. Presented by Akbar.
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
Remote Procedure CallCS-4513, D-Term Remote Procedure Call CS-4513 Distributed Computing Systems (Slides include materials from Operating System.
Distributed systems Programming with threads. Reviews on OS concepts Each process occupies a single address space.
Distributed Systems Lecture #3: Remote Communication.
Implementing Remote Procedure Calls Authors: Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Presenter: Jim Santmyer Thanks to:
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
User Level Interprocess Communication for Shared Memory Multiprocessor by Bershad, B.N. Anderson, A.E., Lazowska, E.D., and Levy, H.M.
Remote Procedure Calls. 2 Announcements Prelim II coming up in one week: –Thursday, April 26 th, 7:30—9:00pm, 1½ hour exam –101 Phillips –Closed book,
02/02/2004CSCI 315 Operating Systems Design1 Interprocesses Communication Notice: The slides for this lecture have been largely based on those accompanying.
Communication in Distributed Systems –Part 2
02/01/2010CSCI 315 Operating Systems Design1 Interprocess Communication Notice: The slides for this lecture have been largely based on those accompanying.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
.NET Mobile Application Development Remote Procedure Call.
Interprocess Communication. Process Concepts Last class.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 12 Communicating over.
COSC 3407: Operating Systems
1 Chapter 2. Communication. STEM-PNU 2 Layered Protocol TCP/IP : de facto standard Our Major Concern Not always 7-layered Protocol But some other protocols.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Problems with Send and Receive Low level –programmer is engaged in I/O –server often not modular –takes 2 calls to get what you want (send, followed by.
1 Lecture 5 (part2) : “Interprocess communication” n reasons for process cooperation n types of message passing n direct and indirect message passing n.
3.1 Silberschatz, Galvin and Gagne ©2009Operating System Concepts with Java – 8 th Edition Chapter 3: Processes.
 Remote Procedure Call (RPC) is a high-level model for client-sever communication.  It provides the programmers with a familiar mechanism for building.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Distributed Computing A Programmer’s Perspective.
Remote Procedure Calls CS587x Lecture Department of Computer Science Iowa State University.
Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy. Presented by: Tim Fleck.
Mark Stanovich Operating Systems COP Primitives to Build Distributed Applications send and receive Used to synchronize cooperating processes running.
Remote Procedure Call and Serialization BY: AARON MCKAY.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
RPC Model, Stubs and Skeletons Divya Nampalli
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
1 Chapter 2. Communication. STEMPusan National University STEM-PNU 2 Layered Protocol TCP/IP : de facto standard Our Major Concern Not always 7-layered.
Implementing Remote Procedure Call Landon Cox February 12, 2016.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 3: Process-Concept.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Distributed Systems Lecture 8 RPC and marshalling 1.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Lecture 5: RPC (exercises/questions). 26-Jun-16COMP28112 Lecture 52 First Six Steps of RPC TvS: Figure 4-7.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Last Class: Introduction
Client-Server Communication
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
IPC and RPC.
CMSC621: Advanced Operating Systems Advanced Operating Systems
Chapter 4: Processes Process Concept Process Scheduling
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
DISTRIBUTED COMPUTING
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
Sarah Diesburg Operating Systems COP 4610
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Remote Procedure Call Hank Levy 1.
Lecture 6: RPC (exercises/questions)
Distributed Systems CS
Remote Procedure Call Hank Levy 1.
Lecture 6: RPC (exercises/questions)
Lecture 7: RPC (exercises/questions)
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Remote Procedure Call Hank Levy 1.
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Distributed Systems CS
Presentation transcript:

Remote Procedure Call Andy Wang Operating Systems COP 4610 / CGS 5765

Primitives to Build Distributed Applications send and receive Used to synchronize cooperating processes running on different machines Communicate through mailboxes (ports) Temporary holding areas for messages Atomic operations send/receive the entire message or nothing

More on send and receive To put a message to the network send(message, destination_mbox) receive(buffer, mbox) Waits until a message arrives Copies the message into a given buffer

Remote Procedure Call (RPC) Allows you to invoke a procedure on either a local or remote machine Client RemoteMachine  Say(“Meow”); Server Machine  Say(“Meow”); Implemented on top of two-way messaging

RPC Illustrated Server (callee)Client (caller) OS or Network Server stub Client stub callreplycallreply

Procedure Stubs Provide the invocation interface programmers e.g. foo(int a) Client stub Build messages (a.k.a. marshalling) Send messages Wait for response Unpack reply Return result

Server Stub Create N threads to wait for requests Loop Wait for command Decode and unpack request parameters (unmarshalling) Call procedure Build replay message with results Send reply

RPC vs. Procedure Call From the programmer’s viewpoint Similar semantics Pointers are instantiated before transmission Data structures pointed by the pointer are copied Processes running on the remote machine is in a different address space

Implementation Issues Stubs are automatically generated Need to have a well-known port to talk to servers Server can upgrade the implementation without recompiling client applications

Interprocess Communication RPC is just another way to communicate between processes Example uses Microkernel operating systems Portions of an OS are implemented at the user level to minimize the kernel-level code Object linking and embedding (OLE) Mix-and-match applications

Using RPC for IPC + Fault isolation: bugs are unlikely to propagate across different address spaces + Modularity: independent component upgrades + Location transparency: a service can be provided from local or remote machines

Using RPC for IPC - Poor performance - A wide range of failure modes A user-level bug can cause a process failure A kernel-level bug can cause multiple processes to fail A network failure, server failure, or an earthquake can cause multiple machines to fail