Shared memory support method and apparatus for a microkernel data processing system
First Claim
1. In a data processing system, including a processor for executing stored program instructions and a memory for storing program instructions describing a first task and thread and a second task and thread, a method for sharing a partition of the memory between the first task and the thread and the second task and thread, comprising;
- transferring a send call request from the first task and thread to an interprocess communications controller in the memory, to allocate a shared partition of the memory;
transferring a receive call request from the second task and thread to the interprocess communications controller, to share the shared partition;
writing data from the first task and thread to the shared partition;
transferring a control message from the first task and thread to the interprocess communications controller, to give notice of the data transferred to the shared partition;
first checking in the interprocess communications controller whether the second task and thread are local or remote;
second checking in the interprocess communications controller whether the second task and thread share the shared partition with the first task and thread;
writing an address for said shared partition in a look aside buffer; and
transferring a token message from the interprocess communications controller to the second task and thread to give notice of the data available in the shared partition.
0 Assignments
0 Petitions
Accused Products
Abstract
A data processing system and method provide for sharing a partition of a memory in the system between a first task and thread and a second task and thread, so as to more efficiently enable adaptive sharing of data for local tasks or alternately copying of data into I/O buffers for remote tasks. The system and method automatically determine whether sharing has been established between two local tasks and if not, the system and method will adaptively copy data for messages to be transferred between the tasks.
142 Citations
18 Claims
-
1. In a data processing system, including a processor for executing stored program instructions and a memory for storing program instructions describing a first task and thread and a second task and thread, a method for sharing a partition of the memory between the first task and the thread and the second task and thread, comprising;
-
transferring a send call request from the first task and thread to an interprocess communications controller in the memory, to allocate a shared partition of the memory; transferring a receive call request from the second task and thread to the interprocess communications controller, to share the shared partition; writing data from the first task and thread to the shared partition; transferring a control message from the first task and thread to the interprocess communications controller, to give notice of the data transferred to the shared partition; first checking in the interprocess communications controller whether the second task and thread are local or remote; second checking in the interprocess communications controller whether the second task and thread share the shared partition with the first task and thread; writing an address for said shared partition in a look aside buffer; and transferring a token message from the interprocess communications controller to the second task and thread to give notice of the data available in the shared partition. - View Dependent Claims (2, 4)
-
-
3. In a data processing system, including a a processor for executing stored program instructions and a memory for storing program instructions describing a first task and thread and a second task and thread, a method for sharing a partition of the memory between the first task and the thread and the second task and thread, comprising;
-
transferring a send call request from the first task and thread to an interprocess communications controller in the memory, to allocate a shared partition of the memory; transferring a receive call request from the second task and thread to the interprocess communications controller, to share the shared partition; writing data from the first task and thread to the shared partition; transferring a control message from the first task and thread to the interprocess communications controller, to give notice of the data transferred to the shared partition; first checking in the interprocess communications controller whether the second task and thread are local or remote; second checking in the interprocess communications controller whether the second task and thread share the shared partition with the first task and thread; writing an address for said shared partition in a look aside buffer; transferring a token message from the interprocess communications controller to the second task and thread to give notice of the data available in the shared partition; copying the data from said shared partition to an I/O buffer in the memory if said first checking step fails; and copying said data from the shared partition to a receive buffer of the second task and thread if said second checking step fails.
-
-
5. A data processing system, comprising:
-
a processor for executing stored program instructions; a bus means coupled to the processor for transferring information signals to and from the processor; a memory coupled to the bus means for storing program instructions which describe a first task and thread and a second task and thread; an interprocess communications means in said memory, for accepting a send call request from the first task and thread, for allocating a shared partition in the memory; said interprocess communications means further accepting a receive call request from the second task and thread, for sharing the shared partition; said first task and thread writing data into said shared partition; said interprocess communications means further accepting a control message from the first task and thread, to give notice of the data transferred to the shared partition; said interprocess communications means first checking whether the second task and thread are local or remote, then second checking whether the second task and thread share the shared partition with the first task and thread; a look aside buffer in said memory, for accepting a virtual address value written by said interprocess communications means, representing a virtual address of said shared partition in a virtual address space of said second task; and said interprocess communications means transferring a token message to the second task and thread to give notice of the data available in the shared partition. - View Dependent Claims (6, 8)
-
-
7. A data processing system, comprising:
-
a processor for executing stored program instructions; a bus means coupled to the processor for transferring information signals to and from the processor; a memory coupled to the bus means for storing program instructions which describe a first task and thread and a second task and thread; an interprocess communications means in said memory, for accepting a send call request from the first task and thread, for allocating a shared partition in the memory; said interprocess communications means further accepting a receive call request from the second task and thread, for sharing the shared partition; said first task and thread writing data into said shared partition; said interprocess communications means further accepting a control message from the first task and thread, to give notice of the data transferred to the shared partition; said interprocess communications means first checking whether the second task and thread are local or remote, then second checking whether the second task and thread share the shared partition with the first task and thread; a look aside buffer in said memory, for accepting a virtual address value written by said interprocess communications means, representing a virtual address of said shared partition in a virtual address space of said second task; said interprocess communications means transferring a token message to the second task and thread to give notice of the data available in the shared partition; said interprocess communications means copying the data from said shared partition to an I/O buffer in the memory if said first checking step fails; and said interprocess communications means copying said data from the shared partition to a receive buffer of the second task and thread if said second checking step fails.
-
-
9. In a data processing system, including a processor for executing stored program instructions and a memory for storing program instructions describing a first task and thread and a second task and thread, a method for sharing a partition of the memory between the first task and the thread and the second task and thread, comprising;
-
transferring a send request from the first task and thread to an interprocess communications controller in the memory, to allocate a shared partition of the memory; transferring a receive request from the second task and thread to the interprocess communications controller, to share the shared partition; writing data from the first task and thread to the shared partition; transferring a first control message from the first task and thread to the interprocess communications controller, to give notice of the data transferred to the shared partition; transferring a second control message from the second task and thread to the interprocess communications controller, to indicate availability to receive data int he shared partition; writing an address for said shared partition in a look aside buffer; and transferring a token message from the interprocess communications controller to the second task and thread to give notice of the data available in the shared partition. - View Dependent Claims (10)
-
-
11. A data processing system, comprising:
-
a processor for executing stored program instructions; a bus means coupled to the processor for transferring information signals to and from the processor; a memory coupled to the bus means for storing program instructions which describe a first task and thread and a second task and thread; an interprocess communications means in said memory, for accepting a send request from the first task and thread, for allocating a shared partition in the memory; said interprocess communications means further accepting a receive request from the second task and thread, for sharing the shared partition; said first task and thread writing data into said shared partition; said interprocess communications means further accepting a control message from the first task and thread, to give notice of the data transferred to the shared partition; a look aside buffer in said memory, for accepting a virtual address value written by said interprocess communications means, representing a virtual address of said shared partition in a virtual address space of said second task; and said interprocess communications means transferring a token message to the second task and thread to give notice of the data available in the shared partition. - View Dependent Claims (12)
-
-
13. An article of manufacture for use in a data processing system, including a processor for executing stored program instructions and a memory for storing program instructions describing a first task and thread and a second task and thread, comprising:
-
a computer useable medium having a computer readable program code means embodied therein for sharing a partition of the memory between the first task and the thread and the second task and thread, the computer readable program code means in said article of manufacture comprising; computer readable program code means for causing a computer to transfer a send call request from the first task and thread to an interprocess communications controller in the memory, to allocate a shared partition of the memory; computer readable program code means for causing a computer to transfer a receive call request from the second task and thread to the interprocess communications controller, to share the shared partition; computer readable program code means for causing a computer to write data from the first task and thread to the shared partition; computer readable program code means for causing a computer to transfer a control message from the first task and thread to the interprocess communications controller, to give notice of the data transferred to the shared partition; computer readable program code means for causing a computer to first check in the interprocess communications controller whether the second task and thread are local or remote; computer readable program code means for causing a computer to second check in the interprocess communications controller whether the second task and thread share the shared partition with the first task and thread; computer readable program code means for causing a computr to write an address for said shared partition in a look aside buffer; and computer readable program code means for causing a computer to transfer a token message from the interprocess communications controller to the second task and thread to give notice of the data available in the shared partition. - View Dependent Claims (14, 16)
-
-
15. An article of manufacture for use in a data processing system, including a processor for executing stored program instructions and a memory for storing program instructions describing a first task and thread and a second task and thread, comprising:
-
a computer useable medium having a computer readable program code means embodied therein for sharing a partition of the memory between the first task and the thread and the second task and thread, the computer readable program code means in said article of manufacture comprising; computer readable program code means for causing a computer to transfer a send call request from the first task and thread to an interprocess communications controller in the memory, to allocate a shared partition of the memory; computer readable program code means for causing a computer to transfer a receive call request from the second task and thread to the interprocess communications controller, to share the shared partition; computer readable program code means for causing a computer to write data from the first task and thread to the shared partition; computer readable program code means for causing a computer to transfer a control message from the first task and thread to the interprocess communications controller, to give notice of the data transferred to the shared partition; computer readable program code means for causing a computer to first check in the interprocess communications controller whether the second task and thread are local or remote; computer readable program code means for causing a computer to second check in the interprocess communications controller whether the second task and thread share the shared partition with the first task and thread; computer readable program code means for causing a computr to write an address for said shared partition in a look aside buffer; computer readable program code means for causing a computer to transfer a token message from the interprocess communications controller to the second task and thread to give notice of the data available in the shared partition; computer readable program code means for causing a computer to copy the data from said shared partition to an I/O buffer in the memory if said first checking step fails; and computer readable program code means for causing a computer to copy said data from the shared partition to a receive buffer of the second task and thread if said second checking step fails.
-
-
17. An article of manufacture for use in a data processing system, including a processor for executing stored program instructions and a memory for storing program instructions describing a first task and thread and a second task and thread, comprising:
-
a computer useable medium having computer readable program code means embodied therein for sharing a partition of the memory between the first task and the thread and the second task and thread, the computer readable program code means in said article of manufacture comprising; computer readable program code means for causing a computer to transfer a send request from the first task and thread to an interprocess communications controller in the memory, to allocate a shared partition of the memory; computer readable program code means for causing a computer to transfer a receive request from the second task and thread to the interprocess communications controller, to share the shared partition; computer readable program code means for causing a computer to write data from the first task and thread to the shared partition; computer readable program code means for causing a computer to transfer a first control message from the first task and thread to the interprocess communications controller, to give notice of the data transferred to the shared partition; computer readable program code means for causing a computer to transfer a second control message from the second task and thread to the interprocess communications controller, to indicate availability to receive data int he shared partition; computer readable program code means for causing a computer to write an address for said shared partition in a look aside buffer; and computer readable program code means for causing a computer to transfer a token message from the interprocess communications controller to the second task and thread to give notice of the data available in the shared partition. - View Dependent Claims (18)
-
Specification