Browse Prior Art Database

Emulating a Remote Procedure Call using One-Way Messages

IP.com Disclosure Number: IPCOM000116803D
Original Publication Date: 1995-Nov-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 2 page(s) / 40K

Publishing Venue

IBM

Related People

Schwartz, WH: AUTHOR

Abstract

Disclosed is the use of pairs of one-way messages, in conjunction with blocking and running, to emulate remote procedure calls. This method is used to support the external memory manager interface of the IBM* Microkernel, which is defined as a set of remote procedure calls.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 77% of the total text.

Emulating a Remote Procedure Call using One-Way Messages

      Disclosed is the use of pairs of one-way messages, in
conjunction with blocking and running, to emulate remote procedure
calls.  This method is used to support the external memory manager
interface of the IBM* Microkernel, which is defined as a set of
remote procedure calls.

      When a remote procedure call is emulated using a pair of
one-way messages, a token packet is allocated by the kernel caller to
record the state of the caller.  The outbound message has an
additional parameter added for this token packet.  A pseudo-server
receives the one-way message on the user task side.  The packet is
kept in local storage, and the server is called from the
pseudo-server, as if being called by a remote procedure call.  Upon
return from the real server routine, the token packet is used to
select a return one-way message appropriate for the return data or
status.  The kernel worker routine for the returning one-way message
uses the token packet to select post-remote-procedure call processing
and to wake up the originating process.  Thus, both the kernel client
and the user server routine behave as if true remote procedure call
were available.

      This technique allows the kernel to treat the call as
synchronous and block waiting for the reply, or the kernel can treat
the call as asynchronous and process the post processing
independently from the initiation thread.  The post processing work
can b...