IP Library Granted Patent US 8,214,828
Granted Patent B2
US 8,214,828 · App. 11/479,228 · Granted Jul 3, 2012

Module state management in a virtual machine 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 8,214,828
App. No.
11/479,228
Granted
Jul 3, 2012
Kind
B2
Abstract

A method for managing software modules of at least two operating systems sharing physical resources of a computing environment, but running in different partitions separated by a virtualization boundary comprises accumulating module information in a virtualization subsystem that directs the creation and management of the partitions. The accumulated module information is used across the virtualization boundary to manage the use of the software modules. Also, a method for managing software modules comprises making at least two operating systems aware that they are being hosted in a virtualized computing environment.

Claims (55)

1. A method for managing software modules in a computing environment, wherein the computing environment comprises a first partition and a second partition, and wherein a first operating system runs on the first partition and a second operating system runs on the second partition, the method comprising:

accumulating module information in a virtualization subsystem that directs the creation and management of the partitions;

receiving, from the first operating system at the virtualization subsystem, a request to load a module;

determining, based on the accumulated module information, that the module is running on the second operating system, wherein components of the module have been loaded into a system physical address space, and wherein a guest physical address space of the second operating system maps the components of the module to the system physical address space;

loading the module in the first operating system using the components of the module loaded into the system physical address space, wherein a guest physical address space of the first operating system maps the components of the module to the system physical address space;

uniformly loading behavioral or security updates to the modules in the first and second partitions; and

optimizing content-based page sharing between the first and second partitions based on the module information.

2. The method of claim 1 , the optimizing content-based page sharing comprising estimating portions of the guest physical address space that are likely to have identical contents.

3. The method of claim 2 , the optimizing content-based page sharing further comprising scanning the estimated portions of the guest physical address space before scanning other portions of the guest physical address space.

4. The method of claim 1 , further comprising:

determining a portion of the guest physical address space to be replaced based on the module information.

5. The method of claim 1 , the uniformly loading behavioral or security updates comprising:

determining whether an updated version of the modules in the first and second partitions is available; and

mapping the updated version of the modules in the first and second partitions.

6. A computer readable storage medium having instructions thereon for managing software modules in a computing environment, wherein the computing environment comprises a first partition and a second partition, and wherein a first operating system runs on the first partition and a second operating system runs on the second partition, the instructions comprising instructions to:

accumulate module information in a virtualization subsystem that directs the creation and management of the partitions;

receive, from the first operating system at the virtualization subsystem, a request to load a module;

determine, based on the accumulated module information, that the module is running on the second operating system, wherein components of the module have been loaded into a system physical address space, and wherein a guest physical address space of the second operating system maps the components of the module to the system physical address space;

load the module in the first operating system using the components of the module loaded into the system physical address space, wherein a guest physical address space of the first operating system maps the components of the module to the system physical address space;

uniformly load behavioral or security updates to the modules in the first and second partitions; and

optimize content-based page sharing between the first and second partitions based on the module information.

7. The computer readable storage medium of claim 6 , the instructions to optimize content-based page sharing comprising instructions to estimate portions of the guest physical address space that are likely to have identical contents.

8. The computer readable storage medium of claim 7 , the instructions to optimizing content-based page sharing further comprising instructions to scan the estimated portions of the guest physical address space before scanning other portions of the guest physical address space.

9. The computer readable storage medium of claim 6 , the instructions further comprising instructions to:

determine a portion of the guest physical address space to be replaced based on the module information.

10. The computer readable storage medium of claim 6 , the instructions to uniformly load behavioral or security updates comprising instructions to:

determine whether an updated version of the modules in the first and second partitions is available; and

map the updated version of the modules in the first and second partitions.

11. A system for managing software modules in a computing environment, the system comprising at least one processor, wherein the computing environment comprises a first partition and a second partition, and wherein a first operating system runs on the first partition and a second operating system runs on the second partition, the system comprising:

means for accumulating module information in a virtualization subsystem that directs the creation and management of the partitions;

means for receiving, from the first operating system at the virtualization subsystem, a request to load a module;

means for determining, based on the accumulated module information, that the module is running on the second operating system, wherein components of the module have been loaded into a system physical address space, and wherein a guest physical address space of the second operating system maps the components of the module to the system physical address space;

means for loading the module in the first operating system using the components of the module loaded into the system physical address space, wherein a guest physical address space of the first operating system maps the components of the module to the system physical address space;

means for uniformly loading behavioral or security updates to the modules in the first and second partitions; and

means for optimizing content-based page sharing between the first and second partitions based on the module information.

12. The system of claim 11 , the means for optimizing content-based page sharing comprising means for estimating portions of the guest physical address space that are likely to have identical contents.

13. The system of claim 12 , the means for optimizing content-based page sharing further comprising means for scanning the estimated portions of the guest physical address space before scanning other portions of the guest physical address space.

14. The system of claim 11 , further comprising:

means for determining a portion of the guest physical address space to be replaced based on the module information.

15. The system of claim 11 , the means for uniformly loading behavioral or security updates comprising:

means for determining whether an updated version of the modules in the first and second partitions is available; and

means for mapping the updated version of the modules in the first and second partitions.

16. A method for managing software modules in a computing environment, wherein the computing environment comprises a first partition and a second partition, and wherein a first operating system runs on the first partition and a second operating system runs on the second partition, the method comprising:

making the first and second operating systems aware that they are being hosted in a virtualized computing environment;

accumulating, in a virtualization subsystem, component information regarding components of the first and second operating systems;

forwarding module load and unload requests from each of the first and second operating systems to the virtualization subsystem;

determining, based on the component information, whether the virtualization subsystem, the first operating system, or the second operating system will be responsible for loading or unloading the module;

informing the first and second operating systems as to which of the virtualization subsystem, the first operating system, and the second operating system will be responsible for loading or unloading the module;

accumulating, in the virtualization subsystem, module information regarding software modules operating in the first and second operating systems; and

managing the use of the software modules in the first and second operating systems based on the accumulated module information.

17. The method of claim 16 , further comprising:

determining, in the virtualization subsystem, a consistent shadow copy of module information.

18. The method of claim 17 , the shadow copy of module information comprising information about a state of all modules in the first partition.

19. The method of claim 18 , the shadow copy of module information further comprising information about a state of all modules in the second partition.

20. The method of claim 16 , accumulated module information comprising one or more of the group consisting of a uniform resource name, a version, and a digital signature.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2006
From: WATKINS, DOUGLAS A.; AVRAHAM, IDAN
To: MICROSOFT CORPORATION
Reel/Frame 018073/0743 →