Patent ID: 7490216

Claim:
In a virtual computer system comprising a system hardware, a virtual machine monitor and a virtual machine, the virtual computer system having at least a first operating state and a second operating state, a method for providing access to address translations for multiple virtual address spaces, the method comprising: providing a first page table having address translations from a first virtual address space to a physical address space, the first virtual address space being used by software within the virtual machine monitor during the first operating state; providing a second page table having address translations from a second virtual address space to the same physical address space, the second virtual address space being used by software within the virtual machine during the second operating state; causing the system hardware to use the first page table during the first operating state and the second page table during the second operating state; and in response to an attempted memory access for which the system hardware does not find a translation for a virtual address: determining whether the virtual address for the attempted memory access is in the first virtual address space or the second virtual address space by referencing an address space identifier; determining whether the attempted memory access is permissible based on whether the attempted memory access is in the first virtual address space or the second virtual address space and based on the operating state of the virtual computer system; and if the attempted memory access is permissible, determining a translation for the virtual address by: if the virtual address is in the first virtual address space, using the first page table, or if the virtual address is in the second virtual address space, using the second page table.