SYSTEM AND METHOD FOR TRANSFERRING DATA BETWEEN VIRTUAL MACHINES OR OTHER COMPUTER ENTITIES
First Claim
1. A computer program product for communicating between a first computer program in a first virtual machine and a second computer program in a second virtual machine, said first and second virtual machines being formed from a same real computer, said real computer having a memory shared by said first and second virtual machines, said computer program product comprising:
- a computer readable media;
first program instructions for execution in said first virtual machine to dispatch work items from a first work queue in the shared memory;
second program instructions for execution in said second virtual machine to dispatch work items from a second work queue in said shared memory;
third program instructions for execution in said first virtual machine to write a message or data from said first computer program to said shared memory for said second computer program;
fourth program instructions for execution in said first virtual machine, responsive to said message or data being written to said shared memory, to update said second work queue with a first work item indicating said message or data for said second computer program, and determine if said second virtual machine is currently busy with another work item, and if so, not interrupt said second virtual machine regarding said message or data, and in response to said second virtual machine subsequently becoming available to process said message or data, said second program instructions detecting said first work item on said second work queue and notifying said second computer program to read said message or data from said shared memory, if not, interrupt said second virtual machine to invoke said second program instructions to detect said first work item on said second work queue and notify said second computer program to read said message or data from said shared memory; and
wherein said first, second, third and fourth program instructions are stored on said computer readable media.
0 Assignments
0 Petitions
Accused Products
Abstract
A method for communication between first and second computer programs having a shared memory. The first computer program has a first work dispatcher for a first work queue. The second computer program has a second work dispatcher for a second work queue. Without causing an interrupt, a message or data is written for the second program from the first program to the shared memory and the second work queue is updated with a work item indicating a message or data for the second program. In association with the updating step, it is determined if the second program is currently busy. If so, the second program is not interrupted regarding the message or data. When the second program subsequently becomes not busy, the second program receives, without an interrupt, and executes the work item to receive the message or data. If the second program was not currently busy, the second program is interrupted to process the message or data on its work queue. This imposes a minimal burden on the second program.
-
Citations
3 Claims
-
1. A computer program product for communicating between a first computer program in a first virtual machine and a second computer program in a second virtual machine, said first and second virtual machines being formed from a same real computer, said real computer having a memory shared by said first and second virtual machines, said computer program product comprising:
-
a computer readable media;
first program instructions for execution in said first virtual machine to dispatch work items from a first work queue in the shared memory;
second program instructions for execution in said second virtual machine to dispatch work items from a second work queue in said shared memory;
third program instructions for execution in said first virtual machine to write a message or data from said first computer program to said shared memory for said second computer program;
fourth program instructions for execution in said first virtual machine, responsive to said message or data being written to said shared memory, to update said second work queue with a first work item indicating said message or data for said second computer program, and determine if said second virtual machine is currently busy with another work item, and if so, not interrupt said second virtual machine regarding said message or data, and in response to said second virtual machine subsequently becoming available to process said message or data, said second program instructions detecting said first work item on said second work queue and notifying said second computer program to read said message or data from said shared memory, if not, interrupt said second virtual machine to invoke said second program instructions to detect said first work item on said second work queue and notify said second computer program to read said message or data from said shared memory; and
whereinsaid first, second, third and fourth program instructions are stored on said computer readable media. - View Dependent Claims (2, 3)
-
Specification