1
Communication
Chi Zhang czhang@cs.fiu.edu
COP 6611 Advanced Operating System
2
Communication Chi Zhang czhang@cs.fiu.edu Outline Layered - - PDF document
COP 6611 Advanced Operating System Communication Chi Zhang czhang@cs.fiu.edu Outline Layered Protocols Remote Procedure Call (RPC) Remote Object Invocation Message-Oriented Communication 2 1 Layered Protocols 2-1 Each layer
2
3
4
5
6
a) Parameter passing in a local procedure call: the stack before the call to read b) The stack while the called procedure is active
7
8
9
10
11
12
13
14
Distr_object* obj_ref; //Declare a systemwide object reference
; // Initialize the reference to a distributed object
// Implicitly bind and invoke a method (a) Distr_object objPref; //Declare a systemwide object reference Local_object* obj_ptr; //Declare a pointer to local objects
; //Initialize the reference to a distributed object
//Explicitly bind and obtain a pointer to the local proxy
//Invoke a method on the local proxy (b)
15
16
17
18
19
20
21
Release the connection Close Receive some data over the connection Receive Send some data over the connection Send Actively attempt to establish a connection Connect Block caller until a connection request arrives Accept Announce willingness to accept connections Listen Attach a local address to a socket Bind Create a new communication endpoint Socket Meaning Primitive
22
23
Check if there is an incoming message, but do not block MPI_irecv Receive a message; block if there are none MPI_recv Pass reference to outgoing message, and wait until receipt starts MPI_issend Pass reference to outgoing message, and continue MPI_isend Send a message and wait for reply MPI_sendrecv Send a message and wait until receipt starts MPI_ssend Send a message and wait until copied to local or remote buffer MPI_send Append outgoing message to a local send buffer MPI_bsend Meaning Primitive
24
25
Install a handler to be called when a message is put into the specified queue. Notify Check a specified queue for messages, and remove the first. Never block. Poll Block until the specified queue is nonempty, and remove the first message Get Append a message to a specified queue Put Meaning Primitive
26
27
28
29
30
31
32
33
Get a message from a (local) queue MQget Put a message into an opened queue MQput Close a queue MQclose Open a (possibly remote) queue MQopen Description Primitive