Snapshot restore of application chains and applications
First Claim
1. In a computer system, a method for saving a running software application for execution at a later time, the application being associated with a process having a state and an environment, comprising:
- associating a unique identifier with the running software application to be saved;
virtualizing the process environment associated with said running software application;
recording process events that change the state of the process, wherein the recording comprises intercepting at least some of the process events generated by the process prior to the process events reaching an operating system on which the application is running;
saving process state in the form of a snapshot image, wherein the process state includes state updated by the process events that were intercepted; and
saving shared resource state relevant to said snapshot image with said snapshot image.
11 Assignments
0 Petitions
Accused Products
Abstract
The present invention saves all process state, memory, and dependencies related to a software application to a snapshot image. Interprocess communication (IPC) mechanisms such as shared memory and semaphores must be preserved in the snapshot image as well. IPC mechanisms include any resource that is shared between two process or any communication mechanism or channel that allow two processes to communicate or interoperate is a form of IPC. Between snapshots, memory deltas are flushed to the snapshot image, so that only the modified-pages need be updated. Software modules are included to track usage of resources and their corresponding handles. At snapshot time, state is saved by querying the operating system kernel, the application snapshot/restore framework components, and the process management subsystem that allows applications to retrieve internal process-specific information not available through existing system calls. At restore time, the reverse sequence of steps for the snapshot procedure is followed and state is restored by making requests to the kernel, the application snapshot/restore framework, and the process management subsystem.
210 Citations
25 Claims
-
1. In a computer system, a method for saving a running software application for execution at a later time, the application being associated with a process having a state and an environment, comprising:
-
associating a unique identifier with the running software application to be saved;
virtualizing the process environment associated with said running software application;
recording process events that change the state of the process, wherein the recording comprises intercepting at least some of the process events generated by the process prior to the process events reaching an operating system on which the application is running;
saving process state in the form of a snapshot image, wherein the process state includes state updated by the process events that were intercepted; and
saving shared resource state relevant to said snapshot image with said snapshot image. - View Dependent Claims (2, 3)
-
-
4. A computer program product, which, when executed by a computer, saves a running software application for execution at a later time, the application being associated with a process having a state and an environment, by:
-
associating a unique identifier with the running software application to be saved;
virtualizing the process environment associated with said running software application;
recording process events that change the state of the process, wherein the recording comprises intercepting at least some of the process events generated by the process prior to the process events reaching an operating system on which the application is running;
saving process state in the form of a snapshot image, wherein the process state includes state updated by the process events that were intercepted; and
saving shared resource state relevant to said snapshot image with said snapshot image.
-
-
5. A method comprising:
-
recording process events that change one or more states of one or more processes associated with a running software application, wherein the recording comprises intercepting at least some of the process events generated by the one or more processes prior to the process events reaching an operating system on which the running software application is running;
saving one or more snapshot images, the one or more snapshot images comprising said one or more process states of said one or more processes, the one or more process states including state updated by the process events that were intercepted; and
saving shared resource state used by the application with said snapshot images. - View Dependent Claims (6, 7, 8, 9, 10, 11)
-
-
12. A system comprising:
-
an application framework operable to record process events that change one or more states of one or more processes associated with a running software application, wherein the application framework is operable to intercept at least some of the process events generated by the one or more processes prior to the process events reaching an operating system on which the running software application is running, and a snapshot driver operable to;
save one or more snapshot images including said one or more process states of said one or more processes, the one or more process states including state updated by the process events that were intercepted by the application framework; and
save shared resource state used by the application with said snapshot images. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A computer readable medium including program instructions executable to implement a method comprising:
-
recording process events that change one or more states of one or more processes associated with a running software application, wherein the recording comprises intercepting at least some of the process events generated by the one or more processes prior to the process events reaching an operating system on which the running software application is running;
saving one or more snapshot images, the one or more snapshot images comprising said one or more process states of said one or more processes, the one or more process states including state updated by the process events that were intercepted; and
saving shared resource state used by the application with said snapshot images. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
Specification