IP Library Granted Patent US 8,909,946
Granted Patent B2
US 8,909,946 · App. 11/437,109 · Granted Dec 9, 2014

Efficient power management of a system with virtual machines

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,909,946
App. No.
11/437,109
Granted
Dec 9, 2014
Kind
B2
Abstract

Efficient power management of a system with virtual machines is disclosed. In particular, such efficient power management may enable coordination of system-wide power changes with virtual machines. Additionally, such efficient power management may enable coherent power changes in a system with a virtual machine monitor. Furthermore, such efficient power management may enable dynamic control and communication of power state changes.

Claims (51)

1. A computing device having stored computer-executable instructions that when executed by the computing device perform operations comprising:

receiving, by software executing in a first virtual machine, a first notification of an impending system power change from a root operating system, the first virtual machine being a direct child of the root operating system;

taking, responsive to the first notification, at least a first action by the software executing in the first virtual machine to prepare for the impending system power change;

forwarding, by the software executing in the first virtual machine, the first notification to a second virtual machine, the second virtual machine being a direct child of the first virtual machine; and

receiving from the root operating system by the software executing in the first virtual machine a second notification of a completed system power change.

2. The computing device of claim 1 , the operations further comprising:

forwarding, by the software executing in the first virtual machine, the second notification to the second virtual machine.

3. The computing device of claim 1 , wherein the first action comprises powering down a connected device assigned to the first virtual machine.

4. The computing device of claim 1 , wherein the first action comprises saving files to a disk.

5. The computing device of claim 1 , the operations further comprising:

taking at least a second action by the software executing in the first virtual machine in response to the completed system power change.

6. A method for coherently changing a power state of a system with at least one virtual machine, the method comprising:

saving a state of each virtual machine on the system;

suspending each virtual machine on the system;

collecting each virtual processor operating on the system whereby each collected virtual processor is prevented from executing arbitrary code;

lowering the power state of the system;

powering on the system;

releasing each virtual processor operating on the system whereby each released virtual processor is permitted to execute arbitrary code;

launching each virtual operating system on the system; and

restoring each virtual operating system on the system to a previous state in accordance with its corresponding saved state data.

7. The method of claim 6 , further comprising:

prior to degrading the power state of the system, unloading a virtual machine monitor executing within a root operating system, whereby, prior to the unloading, the root operating system is a virtual operating system, and, after the unloading, the root operating system is not a virtual operating system.

8. The method of claim 6 , further comprising:

prior to degrading the power state of the system, securing confidential data of each virtual machine on the system, the confidential data being sensitive data that is used by a virtual machine monitor to save or restore dynamic context when the virtual machine monitor switches between different virtual machines.

9. The method of claim 8 , wherein securing the confidential data of each virtual machine on the system comprises deleting the confidential data from memory.

10. The method of claim 8 , wherein securing the confidential data of each virtual machine on the system comprises encrypting the confidential data.

11. The method of claim 6 , further comprising:

after powering on the system, loading the virtual machine monitor within the root operating system on the system, whereby, prior to the loading, the root operating system is not a virtual operating system, and, after the loading, the root operating system is a virtual operating system.

12. The method of claim 6 , further comprising:

performing one of a retrieval, a restoration, and a reconstruction of the confidential data of each virtual machine on the system.

13. A computer-readable storage medium having computer executable instructions, the instructions comprising:

instructions to save a state of each virtual machine on the system;

instructions to suspend each virtual machine on the system;

instructions to collect each virtual processor operating on the system whereby each collected virtual processor is prevented from executing arbitrary code;

instructions to lower the power state of the system;

instructions to power on the system;

instructions to release each virtual processor operating on the system whereby each released virtual processor is permitted to execute arbitrary code;

instructions to launch each virtual operating system on the system; and

instructions to restore each virtual operating system on the system to a previous state in accordance with its corresponding saved state data.

14. A computer-readable storage medium having computer-executable instructions, the instructions comprising:

instructions to receive by a first virtual machine operating system data regarding processor usage of each virtual machine on a system;

instructions to determine based on the data whether a power state change is required;

instructions to notify a virtual machine monitor that the power state change is required; and

instructions to determine by the first virtual machine operating system whether the first virtual machine operating system is a virtual machine operating system.

15. The computer readable medium of claim 14 , the instructions further comprising:

instructions to determine by the first virtual machine operating system whether virtual machine monitor power communications interfaces are available to the first virtual machine operating system.

16. The computer readable medium of claim 14 , the instructions further comprising:

instructions to perform by the first virtual machine operating system the required power state change.

17. The computer readable medium of claim 14 , wherein the data regarding processor usage comprises accumulated physical processor run-time data and reference global time data.

18. The computer readable medium of claim 14 , the instructions further comprising:

instructions to notify a second virtual machine of an impending power state change.

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 13, 2006
From: ONEY, ADRIAN J.; WILLMAN, BRYAN MARK; TRAUT, ERIC P.; FOLTZ, FORREST C.; HENDEL, MATTHEW D.; VEGA, RENE ANTONIO
To: MICROSOFT CORPORATION
Reel/Frame 018096/0371 →