I/O Execution method for a virtual machine system and system therefor
First Claim
1. In a computer system for realizing virtual machine system by concurrently running a plurality of operating systems under control of a virtual machine control program, wherein the computer system includes (1) a plurality of I/O devices each being either dedicated to one fo the operating systems or shared by plural ones of the operating systems, (2) I/O instruction execution means for controlling start of an I/O operation of one of the I/O devices designated by a start I/O instruction issued by a running operating system and (3) an I/O processor for controlling execution of the I/O operation of the one I/O device, an I/O execution method for the virtual machine system comprising the steps of:
- storing a flag for a respective I/O device indicative of whether the respective I/O device is dedicated to one of the virtual machines to be run on the computer system and storing a VM identifier for a respective I/O device which is dedicated to a respective one of the virtual machines and indicative of the one virtual machine, wherein the storing of the flag and the VM identifier is carried out under control of the virtual machine control program;
storing, as address translation information to be used by said I/O processor for a respective I/O device which is dedicated to a respective virtual machine, address translation information predetermined for the virtual machine so as to translate addresses of a main memory of the virtual machine into addresses of a main memory of the computer system, which addresses of the main memory of the virtual machine are required for execution of instructions by the virtual machine, wherein the selection is carried out under control of the virtual machine control program;
accessing, in response to a start I/O instruction issued from an operating system running one of the virtual machines, a flag and a VM identifier already stored for an I/O device designated by the start I/O instruction, wherein the accessing is carried out by means of said I/O instruction execution means, which responds to the start I/o instruction without intervention of the virtual machine control program to determine whether the designated I/O device designated is dedicated to the running operating system, depending on a value of the accessed flag and VM identifier, wherein the determination is carried out by means of the I/O instruction execution means in response to the start I/O instruction;
producing an order for ordering said I/O processor to execute an I/O operation designated by the start I/O instruction when the I/O device had been determined as being dedicated to the running operating system, wherein the producing is carried out by means of said I/O instruction execution means in response to the start I/O instruction, without intervention of the virtual machine control program;
accessing address transformation information stored for the designated I/O device;
translating addresses of channel commands, indicated by the start I/O instruction and data addresses included in the channel commands using the accessed address translation information, into addresses of the main memory of the computer system; and
executing the I/O instruction, by controlling execution of an I/O operation designated by the start I/O instruction by the designated I/O device, wherein the accessing, translation and executing is carried out by said I/O processor in response to the produced order, without intervention of the virtual machine control program.
1 Assignment
0 Petitions
Accused Products
Abstract
In a virtual machine system (VMS) capable of concurrently running at least one operating system (OS) under one real computer system and a control program (VMCP) for controlling the VMS, the object is to reduce the overhead produced for simulating VM I/Os by direct I/O execution. A VM information area of a real sub-channel control block has a status field in which a flag indicating that the sub-channel is dedicated or not is contained. When the flag is "0", it means that the sub-channel is dedicated to the VM and the sub-channel scheduling by the VMCP is not necessary. As a real interruption priority order is dedicated to a VM, only I/O interruption requests of the VM are queued into the real interruption request queue of that dedicated priority order, and the mixing of VMs in that real interruption priority order is avoided. When an interruption control mask of an interruption priority order of the OS on the VM is "0" indicating that the interruption is not acceptable by the VM, the interruption control mask of the corresponding dedicated real interruption priority order is also "0" and the hardware interruption does not take place. Accordingly, the interruption is retained by the hardware and the I/O interruption retention for the VM by the VMCP is avoided.
66 Citations
12 Claims
-
1. In a computer system for realizing virtual machine system by concurrently running a plurality of operating systems under control of a virtual machine control program, wherein the computer system includes (1) a plurality of I/O devices each being either dedicated to one fo the operating systems or shared by plural ones of the operating systems, (2) I/O instruction execution means for controlling start of an I/O operation of one of the I/O devices designated by a start I/O instruction issued by a running operating system and (3) an I/O processor for controlling execution of the I/O operation of the one I/O device, an I/O execution method for the virtual machine system comprising the steps of:
-
storing a flag for a respective I/O device indicative of whether the respective I/O device is dedicated to one of the virtual machines to be run on the computer system and storing a VM identifier for a respective I/O device which is dedicated to a respective one of the virtual machines and indicative of the one virtual machine, wherein the storing of the flag and the VM identifier is carried out under control of the virtual machine control program; storing, as address translation information to be used by said I/O processor for a respective I/O device which is dedicated to a respective virtual machine, address translation information predetermined for the virtual machine so as to translate addresses of a main memory of the virtual machine into addresses of a main memory of the computer system, which addresses of the main memory of the virtual machine are required for execution of instructions by the virtual machine, wherein the selection is carried out under control of the virtual machine control program; accessing, in response to a start I/O instruction issued from an operating system running one of the virtual machines, a flag and a VM identifier already stored for an I/O device designated by the start I/O instruction, wherein the accessing is carried out by means of said I/O instruction execution means, which responds to the start I/o instruction without intervention of the virtual machine control program to determine whether the designated I/O device designated is dedicated to the running operating system, depending on a value of the accessed flag and VM identifier, wherein the determination is carried out by means of the I/O instruction execution means in response to the start I/O instruction; producing an order for ordering said I/O processor to execute an I/O operation designated by the start I/O instruction when the I/O device had been determined as being dedicated to the running operating system, wherein the producing is carried out by means of said I/O instruction execution means in response to the start I/O instruction, without intervention of the virtual machine control program; accessing address transformation information stored for the designated I/O device; translating addresses of channel commands, indicated by the start I/O instruction and data addresses included in the channel commands using the accessed address translation information, into addresses of the main memory of the computer system; and executing the I/O instruction, by controlling execution of an I/O operation designated by the start I/O instruction by the designated I/O device, wherein the accessing, translation and executing is carried out by said I/O processor in response to the produced order, without intervention of the virtual machine control program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer system realizing a virtual machine system by concurrently running a plurality of operating systems under control of a virtual machine control program, comprising:
-
a plurality of I/O devices each being either dedicated to one of the operating systems or shared by plural ones of the operating systems, I/O instruction execution means for controlling start of an I/O operation of one of the I/O devices designated by a start I/O instruction issued by a running operating system and an I/O processor for controlling execution of the I/O operation of the one I/O device; wherein the I/O instruction execution means includes means for determining whether an I/O device designated by a start I/O instruction is dedicated to a running operating system when the running operating system issues the instruction; wherein said I/O instruction execution means includes means for ordering said I/O processor to execute an I/O operation designated by the start I/O instruction when the I/O device has been determined as being dedicated to the running operating system; wherein said I/O processor includes means responsive to an order for translating a memory address indicated by said start I/O instruction to a real main memory address of the computer system and means for controlling execution of the designated I/O operation by the designated I/O device, based upon the real main memory address. - View Dependent Claims (10)
-
-
11. An interruption circuit for use in a computer system realizing a virtual machine system by concurrently running a plurality of operating systems under control of a virtual machine control program, wherein the computer system includes a plurality of I/O devices which are respectively assigned with a respective one of a plurality of real I/O interruption priorities which are each either dedicated to one of the plural operating systems or shared by plural ones thereof, the interruption circuit comprising:
-
a dedication status register for holding dedication status signals for respective real interruption priorities respectively representing whether or not respective real interruption priorities are dedicated to an operating system running on the computer system; an interruption pending register for holding interruption status signals for respective real interruption priorities respectively representing whether or not an interruption with a respective real interruption priority is generated; a mask register for holding mask signals for respective real interruption priorities respectively representing whether or not an interruption with a respective real interruption priority is to be accepted; a PSW register for including an I/O mask and determiniation means connected to said dedication status register, said interruption pending register, said mask register and said PSW register for determining whether or not an interruption represented as generated by said interruption pending register is to be accepted by the running operating system. - View Dependent Claims (12)
-
Specification