SYSTEM AND METHOD FOR TRANSFERRING DATA BETWEEN VIRTUAL MACHINES OR OTHER COMPUTER ENTITIES
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.
37 Citations
30 Claims
-
1-21. -21. (canceled)
-
22. A system for communication between a first computer program in a first logical partition:
- (“
LPAR”
) and a second computer program in a second LPAR, said system comprising;
a real computer having first and second LPARs and a memory shared by said first and second LPARs, said first LPAR including a first work dispatcher for a first work queue in the shared memory, said second LPAR including a second work dispatcher for a second work queue in said shared memory;
said first computer program including means for writing a message or data from said first LPAR to said shared memory for said second computer program, said first LPAR including means, responsive to said message or data being written to said shared memory, for updating said second work queue with a first work item indicating said message or data for said second computer program, determining if said second LPAR is currently busy with another work item, and if so, not interrupting said second LPAR regarding said message or data, and in response to said second LPAR subsequently becoming available to process said message or data, said second work dispatcher including means for 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, interrupting said second LPAR to invoke said second work dispatcher 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. - View Dependent Claims (23, 24)
- (“
-
25. A computer program product for communication between a first computer program in a first logical partition (“
- LPAR”
) in a real computer and a second computer program in a second LPAR in said real computer, said real computer having a memory shared by said first and second LPARs, said first computer program programmed to write a message or data from said first LPAR to said shared memory for said second computer program, said first LPAR including a first work dispatcher for a first work queue in the shared memory, said second LPAR including a second work dispatcher for a second work queue in said shared memory;
said computer program product comprising;
a computer readable media;
first program instructions for execution in said first LPAR, 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, determine if said second LPAR is currently busy with another work item, and if so, not interrupt said second LPAR regarding said message or data such that in response to said second LPAR subsequently becoming available to process said message or data said second work dispatcher detecting said first work item on said second work queue and said second work dispatcher notifying said second computer program to read said message or data from said shared memory, if not, interrupt said second LPAR to invoke said second work dispatcher 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 program instructions are stored on said media in functional form. - View Dependent Claims (26, 27)
- LPAR”
-
28. A system for communication between a first computer program in a first virtual machine in a real computer and a second computer program in a second virtual machine in said real computer, said system comprising:
-
said real computer having a memory shared by said first and second virtual machines, said first virtual machine including a first work dispatcher for a first work queue in the shared memory, said second virtual machine including a second work dispatcher for a second work queue in said shared memory;
said first computer program including means for writing a message or data from said first virtual machine to said shared memory for said second computer program, said first virtual machine including means, responsive to said message or data being written to said shared memory, for updating said second work queue with a first work item indicating said message or data for said second computer program, determining if said second virtual machine is currently busy with another work item, and if so, not interrupting 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 work dispatcher including means for 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, interrupting said second virtual machine to invoke said second work dispatcher 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. - View Dependent Claims (29, 30)
-
Specification