Patent ID: 8977879
Filing Date: 2015-03-10
Classification: G06F

Abstract:
1. A method for hibernating and resuming system software comprising: before hibernating a computing device, notifying, via a processor of the computing device, system software components of an upcoming hibernation process; at least a portion of the system software components performing, via the processor, a pre-hibernation activity to place that system software component in a ready-to-resume state; each system software component, indicating, via the processor, that that system software component is ready for hibernation, wherein the hibernation process is not completed to create a snapshot of the system software components in the ready-to-resume state until each of the system software components has indicated that it is ready for hibernation; creating, via the processor, the snapshot in nonvolatile memory; subsequently initializing, via the processor, a resume process from the created snapshot; and during the resume process, controllably varying, via the processor, a resume timing sequence for the system software components between a first and second subset of the system software components, said timing sequence referring to a speed with which the system software components in the first subset of the system software components corresponding to first end-user functionality are restored from the ready-to-resume state relative to the system software components in the second subset of the system software components corresponding to second end-user functionality; wherein the ready-to-resume state is a state in which initialization operations are executed upon resume with respect to external components of the computing device; and wherein for at least one of the system software components, the ready-to-resume state is a state existing immediately before a variable linked to an external mechanical input component is determined, whereby upon resuming the at least one system software component checks the mechanical input to determine a value of the variable based on a current state of the mechanical input upon resuming and before the variable is utilized or is attempted to be utilized by that system software component.