Process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor
AssigneesSTMicroelectronics S.r.l., Consiglio Nazionale Delle Ricerche
InventorsIvan Cibrario Bertolotti, Wolfgang Johann Betz
Life of this patent
Estimating the term…
Abstract
A process for managing virtual machines in a physical machine includes the generation of virtual machines and executing operating systems in the virtual machines on top of the physical machine. A virtual machine monitoring function includes the operations of running in privileged mode, operating multiprogramming functions and providing a plurality of virtual machines identical to the physical machine for executing the operating systems.
Claims17
A process for managing virtual machines comprising:
- providing a virtual machine monitoring function running on a physical machine, said virtual machine monitoring function including the operations of:
- running in privileged mode;
- operating multiprogramming functions;
- providing a plurality of said virtual machines identical to said physical machine executing unmodified guest operating systems;
- providing said physical machine with privileged instruction traps that do not alter a state of said physical machine, comprising:
- allowing all privileged instructions to generate a trap when executed in unprivileged mode;
- restricting the use of unprivileged instructions depending on whether a portion of the state of the physical machine belongs to a privileged state view of the physical machine for its outcome;
- and
- allowing the physical machine to relocate its exception vector table anywhere in the addressing space in order to allow said virtual machine monitoring to intercept all traps generated by the physical machine by defining a privileged register, in particular a trap table base register that, at each instant, holds the virtual base address of said exception vector table.
A processor system, configured for operating a process for managing virtual machines in a physical processing machine comprising the operations of generating virtual machines and unmodified executing guest operating systems in said virtual machines of said physical machine, wherein said process comprises:
- providing a virtual machine monitoring function running on said physical machine, said virtual machine monitoring function including the operations of:
- running in privileged mode;
- operating multiprogramming functions;
- providing a plurality of said virtual machines identical to said physical machine executing said unmodified guest operating systems;
- providing said physical machine with privileged instruction traps that do not alter a state of said physical machine, comprising:
- allowing all privileged instructions to generate a trap when executed in unprivileged mode;
- restricting the use of unprivileged instructions depending on whether a portion of the state of the physical machine belongs to a privileged state view of the physical machine for its outcome;
- and
- allowing the physical machine to relocate its exception vector table anywhere in the addressing space in order to allow said virtual machine monitoring to intercept all traps generated by the physical machine by defining a privileged register, in particular a trap table base register that, at each instant, holds the virtual base address of said exception vector table.
A non-transitory computer-readable storage medium tangibly embodying a computer program product directly loadable in the memory of and executable by a digital computer comprising a program of instructions for performing a process when the product is run on the computer for managing virtual machines in a physical processing machine, the program of instructions comprising the operations of generating virtual machines and executing unmodified guest operating systems in said virtual machines of said physical machine, said product comprising:
- program code for providing a virtual machine monitoring function running on said physical machine, said virtual machine monitoring function including the operations of:
- program code for running in privileged mode;
- program code for operating multiprogramming functions;
- program code for providing a plurality of said virtual machines identical to said physical machine executing said unmodified guest operating systems;
- program code for providing said physical machine with privileged instruction traps that do not alter a state of said physical machine, comprising:
- program code for allowing all privileged instructions to generate a trap when executed in unprivileged mode;
- program code for restricting the use of unprivileged instructions depending on whether a portion of the state of the physical machine belongs to a privileged state view of the physical machine for its outcome;
- and
- program code for allowing the physical machine to relocate its exception vector table anywhere in the addressing space in order to allow said virtual machine monitoring to intercept all traps generated by the physical machine by defining a privileged register, in particular a trap table base register that, at each instant, holds the virtual base address of said exception vector table.
Dependencies are inferred from the claim text.