Portable interprocess communication facility
AssigneeMotorola, Inc.
InventorJ. Christopher Handorf
Life of this patent
Estimating the term…
Abstract
A portable interprocess communication facility by which different processes running simultaneously on a network of computer systems can efficiently communicate variable sized data blocks between each other. This involves the elements and techniques necessary to achieve high speed communication, without requiring the processes to be located on the same physical system or to be completely dependant upon the particular design or revision of the operating system in which they run. In addition, the invention simplifies the task of porting a modular software system between different hardware devices and operating systems by allowing communicating processes to be only loosely connected to the operating system.
Claims9
A portable interprocess communication facility comprising:
- running a plurality of user programs as independent processes;
- identifying a process so a first process may uniquely identify a desired second process;
- allocating a region of memory to be shared by a plurality of processes;
- uniquely identifying a predetermined portion of the region of memory so that the identified predetermined portion of memory may be used to store and to retrieve a message;
- queuing messages which contain at least the process identifier of the desired second process and the message handle of the identified predetermined portion of memory;
- and
- retrieving the message from the identified predetermined portion of memory using the message handle.
A method for portable interprocess communication, comprising:
- identifying a target process;
- allocating a shared memory block;
- writing information to the shared memory block;
- passing a message to the target process which contains an identifier for the shared memory block;
- and
- reading the information from the shared memory block by the target process.
A method for portable interprocess communication, comprising:
- identifying each process;
- allocating a shared memory block for each message;
- obtaining a handle by which the memory block may be accessed by any process;
- copying information to the shared memory block;
- managing a queue of messages which pass messages one at a time from an originating process to a destination process;
- passing a message to the destination process which contains a handle for the shared memory block;
- and
- reading the information from the shared memory block by the destination process.
Dependencies are inferred from the claim text.