System and method for transferring data between virtual machines or other computer entities
First Claim
1. A system for communication between a first computer program in a first virtual machine and a second computer program in a second virtual machine, said system comprising:
- a real computer;
a base operating system executing in said real computer and defining said first and second virtual machines from said real computer, said first and second virtual machines having a shared memory, said first virtual machine including a first work dispatcher for a first work queue in said 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, andif so, not interrupting said base operating system or said second virtual machine regarding said message or data while said second virtual machine is busy with said other work item, 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 base operating system 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.
1 Assignment
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
18 Claims
-
1. A system for communication between a first computer program in a first virtual machine and a second computer program in a second virtual machine, said system comprising:
-
a real computer; a base operating system executing in said real computer and defining said first and second virtual machines from said real computer, said first and second virtual machines having a shared memory, said first virtual machine including a first work dispatcher for a first work queue in said 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 base operating system or said second virtual machine regarding said message or data while said second virtual machine is busy with said other work item, 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 base operating system 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 (2, 3, 4, 5, 6)
-
-
7. A computer program product for communication between a first computer program in a first virtual machine and a second computer program in a second virtual machine, a base operating system executing in a real computer and defining said first and second virtual machines from said real computer, said first and second virtual machines having a shared memory, said first virtual machine including a first work dispatcher for a first work queue in said 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 computer program product comprising:
-
a computer readable storage media; program instructions, for execution within 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, determine if said second virtual machine is currently busy with another work item, and if so, not interrupt said base operating system or said second virtual machine regarding said message or data while said second virtual machine is busy with said other work item, 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, interrupt said base operating system 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 program instructions are stored on said storage media in functional form. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system for communication between a first computer program in a first logical partition and a second computer program in a second logical partition, said system comprising:
-
a real computer; a base operating system executing in said real computer and defining said first and second logical partitions from said real computer, said first and second logical partitions having a shared memory, said first logical partition including a first work dispatcher for a first work queue in said shared memory, said second logical partition including a second work dispatcher far a second work queue in said shared memory; said first computer program including means for writing a message or data from said first logical partition to said shared memory for said second computer program, said first logical partition 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 logical partition is currently busy with another work item, and if so, not interrupting said base operating system or said second logical partition regarding said message or data while said second logical partition is busy with said other work item, and in response to said second logical partition 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 base operating system 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 (14, 15, 16, 17, 18)
-
Specification