Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control
First Claim
1. An interprocess communications system for transferring message data from a source user process to at least one destination user process in a computer-based system providing a Unix operating system environment and a shared memory, the interprocess communications system comprising:
- initialization means for creating and initializing a shared memory segment in the shared memory, said shared memory segment including a plurality of message blocks having a preamble portion and a message content portion, said preamble portion having an availability status region, a time allocation region, and an identification region;
sending means for placing the message in one of said plurality of message blocks and for placing a shared memory block index in a datagram socket interprocessor communications mechanism associated with the destination user process, said shared memory block index identifying said one of said plurality of message blocks which contain the message data;
receiving means for receiving said shared memory block index from said datagram socket interprocessor communications mechanism and for using said shared memory block index for retrieving the message data from said one of said plurality of message blocks;
maintenance means for maintaining the availability of said plurality of message blocks in said shared memory segment, said maintenance means periodically reading said time allocation region and comparing the time in said time allocation region with a predetermined value; and
shutdown means for performing a controlled shutdown of the interprocessor communications system when the source user process ceases execution, said shutdown means guaranteeing that any messages associated with the source user process are sent to the at least one destination user process before the source user process is terminated.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention is an interprocess communications (IPC) system and method which utilizes shared memory to transfer message contents and a separate, efficient notification mechanism to perform message control functions. The present invention supports robust, asynchronous communications between potentially large number of software application processes residing on any single or tightly-coupled multiple processor arrangement supporting shared memory between the processes. The present invention is a combination of existing IPC mechanisms available in most commercially available UNIX operating systems. The IPC mechanism utilizes the presently available UNIX shared memory IPC mechanism for transferring message contents and the presently available UNIX datagram socket IPC mechanism for message control and notification. The IPC mechanism may be adapted to other operating system environments. The IPC mechanism performs a controlled shutdown of the interprocess communications associated with a user process which has ceased executing. The shared memory allocated for the IPC mechanism is periodically audited to reclaim lost shared memory blocks due to user process failures.
-
Citations
29 Claims
-
1. An interprocess communications system for transferring message data from a source user process to at least one destination user process in a computer-based system providing a Unix operating system environment and a shared memory, the interprocess communications system comprising:
-
initialization means for creating and initializing a shared memory segment in the shared memory, said shared memory segment including a plurality of message blocks having a preamble portion and a message content portion, said preamble portion having an availability status region, a time allocation region, and an identification region; sending means for placing the message in one of said plurality of message blocks and for placing a shared memory block index in a datagram socket interprocessor communications mechanism associated with the destination user process, said shared memory block index identifying said one of said plurality of message blocks which contain the message data; receiving means for receiving said shared memory block index from said datagram socket interprocessor communications mechanism and for using said shared memory block index for retrieving the message data from said one of said plurality of message blocks; maintenance means for maintaining the availability of said plurality of message blocks in said shared memory segment, said maintenance means periodically reading said time allocation region and comparing the time in said time allocation region with a predetermined value; and shutdown means for performing a controlled shutdown of the interprocessor communications system when the source user process ceases execution, said shutdown means guaranteeing that any messages associated with the source user process are sent to the at least one destination user process before the source user process is terminated. - View Dependent Claims (2, 3)
-
-
4. An interprocess communications system for transferring a message from a source user process to a destination process, comprising:
-
a shared memory having one or more shared memory blocks, each of said one or more message blocks having a preamble portion and a message content portion configured to store message data; a datagram socket associated with said destination process; a message origination interprocess communications mechanism associated with the user process, coupled to said shared memory and to said datagram socket, comprising; a source memory allocation subsystem configured to allocate one of said one or more shared memory blocks from said shared memory to transfer the message, said allocated shared memory block having a location identified by a shared memory block index, a source message transfer subsystem configured to transfer said message located at a local memory address designated by said user process to said allocated shared memory block, and a source datagram transfer subsystem configured to place said shared memory block index into said datagram socket; a message reception interprocess communications mechanism associated with said destination user process, coupled to said shared memory and to said datagram socket, comprising, a destination datagram transfer subsystem configured to retrieve said shared memory block index from said datagram socket, a destination message transfer subsystem configured to transfer the message from said shared memory block identified by said shared memory block index to a designated local memory address associated with the destination user process, and a destination memory allocation subsystem configured to release said shared memory block previously containing the message for future use when no other destination user process is to receive the message. - View Dependent Claims (5, 6, 7, 8, 9)
-
-
10. An interprocess communications system for transferring message data from a source user process to at least one destination user process in a computer-based system, the interprocess communications system comprising:
-
initialization means for creating and initializing a shared memory segment in a shared memory; and sending means for placing the message data to said shared memory segment and for placing message control data to a control data interprocess communications (IPC) transfer mechanism having a connectionless packetized protocol. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 29)
-
-
20. A method for transferring a message from a source user process to at least one destination user process in a computer-based system having a shared memory, the method comprising the steps of:
-
(1) initializing a shared memory segment in the shared memory by a memory allocation subsystem; (2) placing the message in said shared memory segment by a message transfer subsystem; and (3) placing message control data in a control data interprocess communications (IPC) transfer mechanism having a connectionless packetized protocol. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
-
Specification