IP Library Granted Patent US 7,519,808
Granted Patent B2
US 7,519,808 · App. 11/445,632 · Granted Apr 14, 2009

Method and apparatus for quickly reanimating devices from hibernation

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,519,808
App. No.
11/445,632
Granted
Apr 14, 2009
Kind
B2
Abstract

A system that causes a computing device to enter a hibernation mode. During operation, the system creates a hibernation image for the computing device by identifying processes that do not have visible user interface elements, and generating the hibernation image so that processes with visible user interface elements can be reanimated from the hibernation image first to get the computing device reanimated quickly, while the identified processes are reanimated later. Next, the system stores the hibernation image in non-volatile storage. The system then causes the computing device to enter the hibernation mode, wherein the active state of the computing device is preserved in non-volatile storage while power to volatile storage is turned off.

Claims (62)

1. A method for causing a computing device to enter a hibernation mode, comprising:

creating a hibernation image for the computing device;

wherein creating the hibernation image involves,

identifying a first group of processes which will be reanimated prior to additional processes, wherein the first group of processes comprises processes important for user responsiveness, and

generating the hibernation image so that the first group of processes can be reanimated prior to the additional processes;

storing the hibernation image in non-volatile storage; and

causing the computing device to enter the hibernation mode, wherein the active state of the computing device is preserved in non-volatile storage while power to volatile storage is turned off.

2. The method of claim 1 , wherein generating the hibernation image involves evicting user pages for the additional processes into swap space in non-volatile storage, so that the user pages do not have to be part of the hibernation image, and can be swapped back in later as needed after the computing device is reanimated.

3. The method of claim 1 , wherein generating the hibernation image involves:

writing kernel pages and user pages for the first group of processes to a first portion of the hibernation image, wherein the first portion of the hibernation image is reanimated first;

writing pages for the additional processes to a second portion of the hibernation image, wherein the second portion of the hibernation image is reanimated after the first portion; and

marking operating system structures to ensure that a system pager does not swap out physical pages allocated to the user pages for the additional processes before the user pages for the additional processes can be restored during the reanimation process.

4. The method of claim 1 , wherein identifying processes that are important for user responsiveness involves identifying processes with visible user interface elements.

5. The method of claim 1 , wherein the additional processes that do not have visible user interface elements can include processes that are associated with an off-screen session.

6. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for causing a computing device to enter a hibernation mode, wherein the method comprises:

creating a hibernation image for the computing device;

wherein creating the hibernation image involves,

identifying a first group of processes which will be reanimated prior to additional processes, wherein the first group of processes comprises processes important for user responsiveness, and

generating the hibernation image so that the first group of processes can be reanimated prior to the additional processes;

storing the hibernation image in non-volatile storage; and

causing the computing device to enter the hibernation mode, wherein the active state of the computing device is preserved in non-volatile storage while power to volatile storage is turned off.

7. The computer-readable storage medium of claim 6 , wherein generating the hibernation image involves evicting user pages for the additional processes into swap space in non-volatile storage, so that the user pages do not have to be part of the hibernation image, and can be swapped back in later as needed after the computing device is reanimated.

8. The computer-readable storage medium of claim 6 , wherein generating the hibernation image involves:

writing kernel pages and user pages for the first group of processes to a first portion of the hibernation image, wherein the first portion of the hibernation image is reanimated first;

writing pages for the additional processes to a second portion of the hibernation image, wherein the second portion of the hibernation image is reanimated after the first portion; and

marking operating system structures to ensure that a system pager does not swap out physical pages allocated to the user pages for the additional processes before the user pages for the additional processes can be restored during the reanimation process.

9. The computer-readable storage medium of claim 6 , wherein identifying processes that are important for user responsiveness involves identifying processes with visible user interface elements.

10. The computer-readable storage medium of claim 6 , wherein the additional processes that do not have visible user interface elements can include processes that are associated with an off-screen session.

11. An apparatus that causes a computing device to enter a hibernation mode, comprising

a hibernation mechanism;

wherein the hibernation mechanism is configured to create a hibernation image for the computing device by,

identifying a first group of processes which will be reanimated prior to additional processes, wherein the first group of processes comprises processes important for user responsiveness, and

generating the hibernation image so that the first group of processes can be reanimated prior to the additional processes; and

wherein the hibernation mechanism is configured to store the hibernation image in non-volatile storage; and

wherein the hibernation mechanism is configured to cause the computing device to enter the hibernation mode, wherein the active state of the computing device is preserved in non-volatile storage while power to volatile storage is turned off.

12. The apparatus of claim 11 , wherein the apparatus further comprises:

a reanimation mechanism configured to reanimate the computing device by:

reanimating the first group of processes to get the computing device reanimated quickly; and then

reanimating the additional processes.

13. The apparatus of claim 11 , wherein while generating the hibernation image, the hibernation mechanism is configured to evict user pages for the additional processes into swap space in non-volatile storage, so that the user pages do not have to be part of the hibernation image, and can be swapped back in later as needed after the computing device is reanimated.

14. The apparatus of claim 11 , wherein while generating the hibernation image, the hibernation mechanism is configured to:

write kernel pages and user pages for the first group of processes to a first portion of the hibernation image, wherein the first portion of the hibernation image is reanimated first;

write pages for the additional processes to a second portion of the hibernation image, wherein the second portion of the hibernation image is reanimated after the first portion; and to

mark operating system structures to ensure that a system pager does not swap out physical pages allocated to the user pages for the additional processes before the user pages for the additional processes can be restored during the reanimation process.

15. The apparatus of claim 11 , wherein while identifying processes that are important for user responsiveness, the hibernation mechanism is configured to identify processes with visible user interface elements.

16. The apparatus of claim 11 , wherein the additional processes that do not have visible user interface elements can include processes that are associated with an off-screen session.

17. A method for causing a computing device to enter a hibernation mode, comprising:

creating state information for reanimating the computing device;

wherein creating the state information involves,

identifying a first group of processes which will be reanimated prior to additional processes, wherein the first group of processes comprises processes important for user responsiveness, and

generating the state information so that the first group of processes can be reanimated prior to the additional processes; and

storing the state information in non-volatile storage; and

causing the computing device to enter the hibernation mode, wherein the state information is preserved in non-volatile storage while power to volatile storage is turned off.

18. A computer-readable storage medium, wherein the computer-readable storage medium contains:

a hibernation instruction, which causes the computer to,

create a hibernation image for the computing device, wherein creating the hibernation image involves, identifying a first group of processes which will be reanimated prior to additional processes, wherein the first group of processes comprises processes important for user responsiveness, and generating the hibernation image so that the first group of processes can be reanimated prior to the additional processes,

store the hibernation image in non-volatile storage, and to

cause the computing device to enter the hibernation mode, wherein the active state of the computing device is preserved in non-volatile storage while power to volatile storage is turned off.

19. A method for reanimating a computing device for a hibernation mode, comprising:

reanimating a first group of processes from state information stored in non-volatile storage to get the computing device reanimated quickly, wherein the first group of processes comprises processes important for user responsiveness; and

subsequently reanimating additional processes.

20. The method of claim 19 , wherein the first group of processes includes processes which are associated with visible user interface elements.

Assignments (3)
CHANGE OF NAME Recorded May 7, 2007
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 019265/0922 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2006
From: REECE, DEAN; SOKOL, JOSEPH
To: APPLE COMPUTER, INC.
Reel/Frame 018341/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2006
From: REECE, DEAN; SOKOL, JOSEPH
To: APPLE COMPUTER, INC.
Reel/Frame 017949/0786 →