1. A computer system comprising:
a hypervisor managing at least one virtual computer; and
a composite IO (InputOutput) controller,
wherein the composite IO controller is provided with a plurality of IO controllers and a plurality of IO ports that can be shared by each IO controller,
at least one IO controller of the plurality of IO controllers is assigned to any one of virtual computers,
any one of IO devices and any one of IO controllers are coupled to each IO port, and
the hypervisor executes the processes (a) to (c):
(a) acquiring an IO command that has been issued from the virtual computer;
(b) judging whether or not a target of an IO that complies with the IO command is an unassigned port associated device that is a device associated with an IO port that is coupled to an IO controller that is not assigned to a virtual computer that is an issuing source of the IO command; and
(c) in the case in which the result of the judgment of (b) is positive, not executing an IO to the unassigned port associated device, and returning a virtual execution result to the virtual computer that is an issuing source of the IO command.
2. The computer system according to claim 1, wherein:
the at least one virtual computer includes a first virtual computer and a second virtual computer,
the plurality of IO controllers includes:
a first IO controller that is assigned to the first virtual computer; and
a second IO controller that is assigned to the second virtual computer,
the first IO controller is provided with first and second port switch registers and first and second port devices,
the second IO controller is provided with first and second port devices,
the first port switch register is coupled to the first IO port,
the first port device of the first IO controller, and the first port device of the second IO controller, and stores a value that indicates which of the first IO controller and the second IO controller is coupled to the first IO port,
the second port switch register is coupled to the second IO port,
the second port device of the first IO controller, and the second port device of the second IO controller, and stores a value that indicates which of the first IO controller and the second IO controller is coupled to the second IO port,
the first port device is corresponded to the first IO port,
the second port device is corresponded to the second IO port,
the first port status register of the first IO controller stores a coupled value that is a value that means that a device is coupled since the first port switch register stores the first value, and
on the other hand the first port status register of the second IO controller stores an uncoupled value that is a value that means that a device is not coupled since the first port status register of the first IO controller stores the coupled value,
the second port status register of the second IO controller stores a coupled value that is a value that means that a device is coupled since the second port switch register stores the second value, and
on the other hand the second port status register of the first IO controller stores an uncoupled value that is a value that means that a device is not coupled since the second port status register of the second IO controller stores the coupled value,
the first virtual computer is provided with a logical first IO controller that is corresponded to the first IO controller that has been assigned, and the logical first IO controller is provided with a logical first port status register, a logical second port status register, a logical first port switch register, and a logical second port switch register,
the second virtual computer is provided with a logical second IO controller that is corresponded to the second IO controller that has been assigned, and the logical second IO controller is provided with a logical first port status register and a logical second port status register,
the hypervisor manages a register area that is an area for storing a value that is stored into the logical second port switch register,
and in the case in which the hypervisor is activated, the hypervisor resets the composite IO controller, writes a first value that means that the first IO port is coupled to the first IO controller and is not coupled to the second IO controller to the first port switch register, and writes a second value that means that the second IO port is coupled to the second IO controller and is not coupled to the first IO controller to the second port switch register,
(A) the IO command that has been acquired is a write command from the first virtual computer which specifies the logical second port switch register for the (a), in the case in which the unassigned port associated device is the second port switch register for the (b), the hypervisor does not write a value of a write target to the second port switch register and writes the value of a write target to the register area for the (c),
(B) the IO command that has been acquired is a read command from the first virtual computer which specifies the logical second port switch register for the (a), in the case in which the unassigned port associated device is the second port switch register for the (b), the hypervisor does not read a value that has been stored into the second port switch register, reads a value that has been stored into the register area, and returns the read value to the first virtual computer for the (c),
(C) the IO command that has been acquired is a write command from the first or second virtual computer which specifies the logical second or first port status register for the (a), in the case in which the unassigned port associated device is the port status register of an IO controller that is not assigned to the virtual computer that is a write source for the (b), the hypervisor does not write to the port status register and does not execute a write that complies with a write command from the virtual computer that is a write source for the (c), and
(D) the IO command that has been acquired is a write command from the first or second virtual computer which specifies the logical second or first port status register for the (a), in the case in which the unassigned port associated device is the port status register of an IO controller that is not assigned to the virtual computer that is a read source for the (b), the hypervisor does not read from the port status register and returns an uncoupled value that is a value that means that a device is not coupled to the virtual computer that is a read source for the (c).
3. The computer system according to claim 2, wherein:
the first IO controller is an EHCI (Enhanced Host Controller Interface) controller,
the second IO controller is a UHCI (Universal Host Controller Interface) controller,
the plurality of IO ports include a first USB (Universal Serial Bus) port and a second USB port,
an IO device that is coupled to the first USB port by a first USB interface is a virtual storage device, and
an IO device that is coupled to the second USB port by a second USB interface is a virtual input device.
4. The computer system according to claim 1, wherein:
the plurality of IO controllers include:
the first IO controller that is assigned to a first target; and
the second IO controller that is assigned to a second target,
at least one of the first target and the second target is a virtual computer,
the first IO controller is provided with first and second port switches,
the first port switch is a device for selectively coupling the first IO port with any one of the first IO controller and the second IO controller,
the second port switch is a device for selectively coupling the second IO port with any one of the first IO controller and the second IO controller,
in the case in which the hypervisor is activated, the hypervisor executes coupling the first IO port with the first IO controller by controlling the first port switch and coupling the second IO port with the second IO controller by controlling the second port switch, and
the unassigned port associated device is the second port switch for the (b).
5. The computer system according to claim 4, wherein:
the hypervisor manages a switch value that is a value that is returned by a read to the second port switch,
in the case in which the IO command that has been acquired is a write command from the first target to the second port switch for the (a), the hypervisor updates the current switch value to a value of a write target for the (c), and
in the case in which the IO command that has been acquired is a read command from the first target to the second port switch for the (a), the hypervisor returns the current switch value to the first target for the (c).
6. The computer system according to claim 4, wherein:
the first and second IO controllers are provided with first and second port status storage areas that are corresponded to the first and second IO ports, respectively,
each of the port status storage areas stores a value associated with whether or not an IO device is coupled to an IO port corresponded to the port status register,
in the case in which an issuing source of the IO command is the first target for the (b), the unassigned port associated device is the second port status storage area of the first IO controller, and
in the case in which an issuing source of the. IO command is the second target for the (b), the unassigned port associated device is the first port status storage area of the second IO controller.
7. The computer system according to claim 6, wherein:
in the case in which the IO command that has been acquired is a write command from the first or second target for the (a), the hypervisor does not execute a write to the port status register that is the unassigned port associated device, and makes a write that complies with a write command from the first or second target to be unexecuted for the (c), and
in the case in which the IO command that has been acquired is a read command from the first or second target for the (a), the hypervisor does not execute a read from the port status register that is the unassigned port associated device, and returns an uncoupled value that is a value that means that a device is not coupled to the first or second target for the (c).
8. The computer system according to claim 1, wherein:
the plurality of IO controllers include:
the first IO controller that is assigned to a first target; and
the second IO controller that is assigned to a second target,
at least one of the first target and the second target is a virtual computer,
the first IO controller is provided with first and second ports and first and second port status storage areas that are corresponded to the first and second ports, respectively,
the second IO controller is provided with first and second port status storage areas that are corresponded to the first and second ports, respectively,
each of the port status storage areas stores a value associated with whether or not an IO device is coupled to an IO port corresponded to the port status register,
in the case in which an issuing source of the IO command is the first target for the (b), the unassigned port associated device is the second port status storage area of the first IO controller, and
in the case in which an issuing source of the IO command is the second target for the (b), the unassigned port associated device is the first port status storage area of the second IO controller.
9. The computer system according to claim 8, wherein:
in the case in which the IO command that has been acquired is a write command from the first or second target for the (a), the hypervisor does not execute a write to the port status register that is the unassigned port associated device, and makes a write that complies with a write command from the first or second target to be unexecuted for the (c), and
in the case in which the IO command that has been acquired is a read command from the first or second target for the (a), the hypervisor does not execute a read from the port status register that is the unassigned port associated device, and returns an uncoupled value that is a value that means that a device is not coupled to the first or second target for the (c).
10. A hypervisor that manages a virtual computer that is assigned to an IO controller in a composite IO controller, comprising:
an acquisition part that acquires an IO (InputOutput) command that is issued from the virtual computer;
a judgment part that judges whether or not a target of an IO that complies with the IO command is an unassigned port associated device that is a device associated with an IO port that is coupled to an IO controller that is not assigned to a virtual computer that is an issuing source of the IO command; and
a command processing part that does not execute an IO to the unassigned port associated device and returns a virtual execution result to a virtual computer that is an issuing source of the IO command in the case in which the result of the judgment is positive,
wherein the composite IO controller is provided with a plurality of IO controllers and a plurality of IO ports that can be shared by each IO controller,
at least one IO controller of the plurality of IO controllers is assigned to any one of virtual computers, and
any one of IO devices and any one of IO controllers are coupled to each IO port.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A knot untier comprising:
a pawl part and a base part where the pawl part connects to the base part.
2. The knot untier of claim 1, further comprising
a pawl part where the pawl comprises an arm part and a pointed part.
3. The knot untier of claim 2 where the angle the center of the pointed part forms with the centerline of the arm part may range from fifteen degrees to one hundred thirty five degrees.
4. The knot untier of claim 3 comprising one or more pawl parts.
5. The knot untier of claim 4 where the base part is the size and shape of a credit card with the pawl parts along the longer side of the base part.
6. The knot untier of claim 3 where the base part is a jackknife.
7. The knot untier of claim 3 where the base part is the handle of a screwdriver.
8. The knot untier of claim 4 where the base part contains an opening through which a user may insert fingers in order to grip the knot untier in use.