Sarah Diesburg Operating Systems COP 4610

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
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.
Outcomes What is RPC? The difference between conventional procedure call and RPC? Understand the function of client and server stubs How many steps could.
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.
02/01/2010CSCI 315 Operating Systems Design1 Interprocess Communication Notice: The slides for this lecture have been largely based on those accompanying.
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.
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.
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.
Distributed Computing A Programmer’s Perspective.
Remote Procedure Calls CS587x Lecture Department of Computer Science Iowa State University.
Remote Procedure Call Andy Wang Operating Systems COP 4610 / CGS 5765.
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
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.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
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.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Last Class: Introduction
Client-Server Communication
Memory Protection: Kernel and User Address Spaces
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
Prof. Leonardo Mostarda University of Camerino
CS533 Concepts of Operating Systems
Processes Overview: Process Concept Process Scheduling
IPC and RPC.
Distributed Systems CS
CMSC621: Advanced Operating Systems Advanced Operating Systems
Memory Protection: Kernel and User Address Spaces
Memory Protection: Kernel and User Address Spaces
Memory Protection: Kernel and User Address Spaces
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
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
Operating System Concepts
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
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Remote Procedure Call Hank Levy 1.
Presented by: SHILPI AGARWAL
Lecture 6: RPC (exercises/questions)
Distributed Systems CS
Remote Procedure Call Hank Levy 1.
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
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.
Memory Protection: Kernel and User Address Spaces
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Communication.
Distributed Systems CS
Presentation transcript:

Sarah Diesburg Operating Systems COP 4610 Remote Procedure Call Sarah Diesburg Operating Systems COP 4610

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 Client (caller) Server (callee) Client stub call reply Server stub OS or Network

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