IP Library Granted Patent US 7,275,028
Granted Patent B2
US 7,275,028 · App. 09/906,392 · Granted Sep 25, 2007

System and method for the logical substitution of processor control in an emulated computing environment

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,275,028
App. No.
09/906,392
Granted
Sep 25, 2007
Kind
B2
Abstract

In an emulated computing environment, a method is provided for logically decoupling the host operating system from the processor of the computer system with respect to certain processor settings of the processor. A hypervisor of the emulation program replaces some of the processor settings of the processor with processor settings associated with software routines or data structures provided by the guest operating system. The replaced processor settings are written to memory. During this period, when the processor calls a software routine or accesses a data structure associated with the replaced processor setting, the processor will call or access a software routine or access a data structure associated with the guest operating system, bypassing the host operating system and communicating directly with the guest operating system. When the host operating system is to be recoupled to the processor, the processor settings that have been saved to memory are rewritten to the appropriate registers of the processor. During the period that the hypervisor is coupled to the processor, the page table of the hypervisor is established such that it largely mirrors the page table of the guest operating system. If a change to the page table of the guest operating system causes a conflict between the page table of the guest operating system and the page table of the hypervisor, the page table of the hypervisor is reallocated in a manner that is transparent to the guest operating system.

Claims (30)

1. A method for emulating in a host computer system a guest computer system, the guest computer system including a guest operating system, comprising the steps of:

establishing in the host computer system a hypervisor for hosting a guest operating system;

establishing in the hypervisor a page table;

monitoring a page table of the guest operating system; and

reallocating the page table of the hypervisor if a change to the page table of the guest operating system causes a conflict between the page table of the hypervisor and the page table of the guest operating system.

2. The method for emulating in a host computer system a guest computer system, the guest computer system including a guest operating system of claim 1 , wherein the page table of the hypervisor mirrors the page table of the guest operating system, except for the inclusion in the page table of the hypervisor of a mapping of a code of the hypervisor.

3. The method for emulating in a host computer system a guest computer system, the guest computer system including a guest operating system of claim 1 , wherein the step of monitoring the page table of the guest operating system comprises the step of monitoring for writes to the page table of the guest operating system.

4. The method for emulating in a host computer system a guest computer system, the guest computer system including a guest operating system of claim 1 , wherein the step of reallocating the page table of the hypervisor comprises the step of reallocating a mapping of a code of the hypervisor such that the code of the hypervisor is not mapped in to a memory location that overlaps with a mapped in memory location of the page table of the guest operating system.

5. The method for emulating in a host computer system a guest computer system, the guest computer system including a guest operating system of claim 1 ,

wherein the page table of the hypervisor mirrors the page table of the guest operating system, except for the inclusion in the page table of the hypervisor of a mapping of a code of the hypervisor;

wherein the step of monitoring the page table of the guest operating system comprises the step of monitoring for writes to the page table of the guest operating system; and

wherein the step of reallocating the page table of the hypervisor comprises the step of reallocating the mapping of the code of the hypervisor such that the code of the hypervisor is not mapped in to a memory location that overlaps with a mapped in memory location of the page table of the guest operating system.

6. A method for reconciling, in an emulated computing environment, a page table of a guest operating system with a page table of a hypervisor, wherein the hypervisor is hosting the guest operating system on a host computer system, comprising the steps:

establishing the page table of the hypervisor such that the page table of the hypervisor mirrors the page table of the guest operating system, with the addition that the page table of the hypervisor includes an allocation of memory-space for a code of the hypervisor;

monitoring the page table of the guest operating system for changes to the page table of the guest operating system;

if a change to the page table of the guest operating system causes a conflict between the page table of the hypervisor and the page table of the guest operating system, reallocating the page table of the hypervisor so that there is not a conflict between the page table of the hypervisor and the page table of the guest operating system.

7. The method for reconciling, in an emulated computing environment, the page table of a guest operating system with the page table of a hypervisor of claim 6 , wherein the step of reallocating the page table of the hypervisor comprises the step of reallocating page mappings of the code of the hypervisor such that the page mappings of the code of the hypervisor do not overlap with any mapped in pages in the guest operating system.

8. The method for reconciling, in an emulated computing environment, the page table of a guest operating system with the page table of a hypervisor of claim 7 , wherein the step of monitoring the page table of the guest operating system comprises the step of determining when there has been a write to the page table of the guest operating system.

9. A computer-readable medium comprising computer-readable instructions for emulating in a host computer system a guest computer system, the guest computer system including a guest operating system, said computer readable instructions comprising instructions for:

establishing in the host computer system a hypervisor for hosting a guest operating system;

establishing in the hypervisor a page table;

monitoring a page table of the guest operating system; and

reallocating the page table of the hypervisor if a change to the page table of the guest operating system causes a conflict between the page table of the hypervisor and the page table of the guest operating system.

10. The computer-readable medium of claim 9 further comprising instructions whereby the page table of the hypervisor mirrors the page table of the guest operating system, except for the inclusion in the page table of the hypervisor of a mapping of a code of the hypervisor.

11. The computer-readable medium of claim 9 further comprising instructions whereby the instructions for monitoring the page table of the guest operating system comprises instructions for monitoring for writes to the page table of the guest operating system.

12. The computer-readable medium of claim 9 further comprising instructions whereby the instructions for reallocating the page table of the hypervisor comprises instructions for reallocating a mapping of a code of the hypervisor such that the code of the hypervisor is not mapped in to a memory location that overlaps with a mapped in memory location of the page table of the guest operating system.

13. The computer-readable medium of claim 9 further comprising instructions whereby:

the page table of the hypervisor mirrors the page table of the guest operating system, except for the inclusion in the page table of the hypervisor of a mapping of a code of the hypervisor;

instructions for monitoring the page table of the guest operating system comprises instructions for monitoring for writes to the page table of the guest operating system; and

instructions of reallocating the page table of the hypervisor comprises instructions for reallocating the mapping of the code of the hypervisor such that the code of the hypervisor is not mapped in to a memory location that overlaps with a mapped in memory location of the page table of the guest operating system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0001 →