Patent ID: 7895164

Claim:
A method of performing a checkpoint operation on a process, comprising: determining that contents of a checkpoint data structure in a checkpoint file differ from contents of a process data structure associated with the process, wherein a preceding checkpoint operation stored the contents of the checkpoint data structure in the checkpoint file to create a preceding checkpoint of the process data structure, and wherein the determining that the contents of the checkpoint data structure in the checkpoint file differ from the contents of the process data structure comprises determining that a memory page has been added to the process data structure since the preceding checkpoint operation; modifying the contents of the checkpoint data structure in the checkpoint file to reflect the contents of the process data structure; referencing a fragmentation tracking container to determine if an opening in the checkpoint data structure is available, wherein the modifying of the contents of the checkpoint data structure in the checkpoint file comprises loading the contents of the memory page into the opening in the checkpoint data structure in the checkpoint file if the opening is available, and wherein the modifying of the contents of the checkpoint data structure in the checkpoint file comprises appending the contents of the memory page to the end of the checkpoint data structure in the checkpoint file if the opening is unavailable; and adding an address entry corresponding to the memory page of the process data structure to a file map, wherein the file map comprises a plurality of index/address pairs comprising an address of a memory page of the process data structure and an index pointing to the contents of the memory page stored in the checkpoint data structure, and wherein the address entry added to the file map is in one of the index/address pairs.