US2005102396A1PendingUtilityA1

Snapshot restore of application chains and applications

Priority: Oct 5, 1999Filed: Dec 3, 2004Published: May 12, 2005
Est. expiryOct 5, 2019(expired)· nominal 20-yr term from priority
Inventors:Burton A. Hipp
G06F 9/4843G06F 9/50Y10S707/99931
49
PatentIndex Score
0
Cited by
0
References
0
Claims

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.

Claims

exact text as granted — not AI-modified
1 - 6 . (canceled)  
   
   
       7 . A method comprising: 
 determining that a snapshot of an application is to be made during execution of the application on a computer system; and    generating a snapshot image including an application state corresponding to the application, wherein the application state includes a state of one or more interprocess communication (IPC) mechanisms in use by the application.    
   
   
       8 . The method as recited in  claim 7  wherein the IPC mechanisms comprise a shared memory.  
   
   
       9 . The method as recited in  claim 7  wherein the IPC mechanisms comprise a semaphore.  
   
   
       10 . The method as recited in  claim 7  wherein the IPC mechanisms comprise a pipe.  
   
   
       11 . The method as recited in  claim 7  wherein the IPC mechanisms comprise a socket.  
   
   
       12 . The method as recited in  claim 7  wherein the application state further comprises a plurality of memory pages used by the application.  
   
   
       13 . The method as recited in  claim 12  further comprising: 
 determining that a second snapshot of the application is to be made during execution of the application; and    generating a second snapshot image including the application state.    
   
   
       14 . The method as recited in  claim 13  wherein the plurality of memory pages in the second snapshot image are pages that have been modified by the application between generating the snapshot image and generating the second snapshot image.  
   
   
       15 . The method as recited in  claim 7  further comprising: 
 determining that the snapshot image is to be restored;    restoring the snapshot image; and    continuing execution of the application from the application state restored from the snapshot image.    
   
   
       16 . The method as recited in  claim 15  wherein restoring the snapshot image and continuing execution of the application are performed on a different computer system from the computer system on which the snapshot image was generated.  
   
   
       17 . The method as recited in  claim 7  further comprising: 
 during execution of the application, intercepting one or more events generated by the application for service by an operating system executing on the computer system, wherein the one or more events cause changes in the application state; and    recording the intercepted events.    
   
   
       18 . The method as recited in  claim 17  wherein at least a portion of the intercepting is performed by a software module that executes in a privileged mode, wherein the operating system also executes in the privileged mode.  
   
   
       19 . The method as recited in  claim 17  wherein at least a portion of the intercepting is performed by a software module that executes in a user mode, wherein the application also executes in the user mode.  
   
   
       20 . The method as recited in  claim 17  wherein generating the snapshot image comprises querying one or more software modules that perform the intercepting to capture the changes in the application state captured from the intercepted events.  
   
   
       21 . The method as recited in  claim 20  further comprising querying one or more operating system application programming interfaces (APIs) to capture a portion of the application state.  
   
   
       22 . The method as recited in  claim 20  further comprising querying a process management subsystem to capture a portion of the application state.  
   
   
       23 . A computer accessible medium storing a plurality of instructions comprising instructions which, when executed, implement a method comprising: 
 generating a snapshot image including an application state corresponding to the application, wherein, if the application uses one or more interprocess communication (IPC) mechanisms, the application state includes a state of the one or more IPC mechanisms.    
   
   
       24 . The computer accessible medium as recited in  claim 23  wherein the IPC mechanisms comprise a shared memory.  
   
   
       25 . The computer accessible medium as recited in  claim 23  wherein the IPC mechanisms comprise a semaphore.  
   
   
       26 . The computer accessible medium as recited in  claim 23  wherein the IPC mechanisms comprise a pipe.  
   
   
       27 . The computer accessible medium as recited in  claim 23  wherein the IPC mechanisms comprise a socket.  
   
   
       28 . The computer accessible medium as recited in  claim 23  wherein the application state further comprises a plurality of memory pages used by the application.  
   
   
       29 . The computer accessible medium as recited in  claim 28  wherein the method further comprises generating a second snapshot image including the application state.  
   
   
       30 . The computer accessible medium as recited in  claim 29  wherein the plurality of memory pages in the second snapshot image are pages that have been modified by the application between generating the snapshot image and generating the second snapshot image.  
   
   
       31 . The computer accessible medium as recited in  claim 23  wherein the method further comprises restoring the snapshot image, wherein execution of the application is continued from the application state restored from the snapshot image.  
   
   
       32 . The computer accessible medium as recited in  claim 31  wherein restoring the snapshot image and continuing execution of the application are performed on a different computer system from the computer system on which the snapshot image was generated.  
   
   
       33 . The computer accessible medium as recited in  claim 23  wherein the method further comprises: 
 during execution of the application, intercepting one or more events generated by the application for service by an operating system executing on the computer system, wherein the one or more events cause changes in the application state; and    recording the intercepted events.    
   
   
       34 . The computer accessible medium as recited in  claim 33  wherein at least a portion of the intercepting is performed by instructions that execute in a privileged mode, wherein the operating system also executes in the privileged mode.  
   
   
       35 . The computer accessible medium as recited in  claim 33  wherein at least a portion of the intercepting is performed by instructions that execute in a user mode, wherein the application also executes in the user mode.  
   
   
       36 . The computer accessible medium as recited in  claim 33  wherein generating the snapshot image comprises querying one or more software modules that perform the intercepting to capture the changes in the application state captured from the intercepted events.  
   
   
       37 . The computer accessible medium as recited in  claim 36  wherein the method further comprises querying one or more operating system application programming interfaces (APIs) to capture a portion of the application state.  
   
   
       38 . The computer accessible medium as recited in  claim 36  wherein the method further comprises querying a process management subsystem to capture a portion of the application state.  
   
   
       39 . A computer system comprising: 
 an application; and    a snapshot driver module configured, during execution of the application on the computer system, to generate a snapshot image including an application state corresponding to the application, and wherein, if the application uses one or more interprocess communication (IPC) mechanisms, the application state includes a state of the one or more IPC mechanisms.    
   
   
       40 . The computer system as recited in  claim 39  wherein the IPC mechanisms comprise a shared memory.  
   
   
       41 . The computer system as recited in  claim 39  wherein the IPC mechanisms comprise a semaphore.  
   
   
       42 . The computer system as recited in  claim 39  wherein the IPC mechanisms comprise a pipe.  
   
   
       43 . The computer system as recited in  claim 39  wherein the IPC mechanisms comprise a socket.  
   
   
       44 . The computer system as recited in  claim 39  wherein the application state further comprises a plurality of memory pages used by the application.  
   
   
       45 . The computer system as recited in  claim 44  wherein the snapshot driver module is further configured to generate a second snapshot image including the application state.  
   
   
       46 . The computer system as recited in  claim 45  wherein the plurality of memory pages in the second snapshot image are pages that have been modified by the application between generating the snapshot image and generating the second snapshot image.  
   
   
       47 . The computer system as recited in  claim 39  further comprising a restore driver module configured to restore the snapshot image, and wherein the application is configured to continue execution from the application state restored from the snapshot image.  
   
   
       48 . The computer system as recited in  claim 39  further comprising one or more software modules configured to intercept one or more events generated by the application during execution of the application, the one or more events generated by the application for service by an operating system executing on the computer system, wherein the one or more events cause changes in the application state, and wherein the one or more software modules are configured to record the intercepted events.  
   
   
       49 . The computer system as recited in  claim 48  wherein at least one of the one or more software modules executes in a privileged mode, wherein the operating system also executes in the privileged mode.  
   
   
       50 . The computer system as recited in  claim 48  wherein at least one of the one or more software modules executes in a user mode, wherein the application also executes in the user mode.  
   
   
       51 . The computer system as recited in  claim 48  wherein the snapshot driver module is configure to query the one or more software modules to capture the changes in the application state captured from the intercepted events.

Join the waitlist — get patent alerts

Track US2005102396A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.