[Operating System] {ud923} P4L1: Remote Procedure Calls

RPC is an IPC mechanism that specifies that the processes interact via procedure call interface.

 Birrell, Andrew, and Bruce Nelson.

 https://s3.amazonaws.com/content.udacity-data.com/courses/ud923/references/ud923-birrell-nelson-paper.pdf

 Why RPC?

Benefits of RPC 

 

 RPC Requirements

  

 Structure of RPC

 

Once the result is computed, it will take the reverse path. It will go through the server step that will first create a buffer for that result, 

then it will send the response back via appropriate client connection, arriving on the client side into the RPC run time.

the packets will be received. the result will be extracted from those packets by the client side stub, be placed somewhere in memory in the client address space, and ultimately the procedure will return to the client process.

Before that, the client process will be blocked, and the application will be suspended here.


 https://zhuanlan.zhihu.com/p/45700301

 


Steps in RPC 

 


https://www.zhihu.com/question/23995948

目前linux进程间通信的常用方法是什么(pipe?信号量?消息队列?)?


Interface Definition Language 

 


https://www.jianshu.com/p/959030de7f1c

 


 Specifying an IDL

 

XDR (Sun RPC) Example

 Marshalling

 

The encoding specifies the data layout when it's serialized to the bytee stream, so that anybody that looks at it can actually make sense of it.

 Unmarshalling

 

 Binding and Registry

 

registry => yellow pages

 Visual Metaphor

 


https://blog.csdn.net/qq_18425655/article/details/51955674

面试题:TCP协议与UDP协议的区别


 Pointers in RPCs

 

 Handling Partial Failures

 

RPC Failure Quiz 

 

 RPC Design Choice Summary

 

What is SunRPC? 

 

 SunRPC Overview

 

Sun RPC Documents (maintained by Oracle)

 SunRPC XDR Example

 

Compiling XDR 

 

Summarizing XDR Compilation 

 

 

To complete the quiz, download the square.x file (if following along with the hints, you will need to rename it to square.x), and run rpcgen!

You can run rpcgen on the Ubuntu VM provided with this class. If you have not setup the Ubuntu VM yet, follow the Ubnutu VM Setup Instructions.

Quiz Errata

There are two issues with the rpcgen commands. First, you should use the following format:

  • rpcgen square.x [flags]

And, because the flags may be difficult to read, here are the full commands:

  • rpcgen square.x -C
  • rpcgen square.x -C -M

 

 SunRPC Registry

 

 SunRPC Binding

 

 XDR Data Types

 

RFC 4506 (Defines XDR Data Types)

 XDR Routines

 

_freeresult procudure => another user defined procedure => user specifies what are all the different data structures, or pieces of state, that need to be freed up after runtime is done.

 Encoding

 

 XDR Encoding

 

 Java RMI

 

 Java RMI Tutorials

猜你喜欢

转载自www.cnblogs.com/ecoflex/p/10943541.html