A system and method for providing process persistence in a virtual machine
are described. A virtual persistent heap may be provided. The virtual
persistent heap may enable the checkpointing of the state of the
computation of a virtual machine, including processes executing within the
virtual machine, to a persistent storage such as a disk or flash device
for future resumption of the computation from the checkpoint. The Virtual
Persistent Heap also may enable the migration of the virtual machine
computation states, and thus the migration of executing processes, from
one machine to another. The saved state of the virtual machine heap may
also provide the ability to restart the virtual machine after a system
crash or shutdown to the last saved persistent state, and to thus restart
a process that was running within the virtual machine prior to the system
crash or shutdown to a checkpointed state of the process stored in the
virtual persistent heap. This persistent feature is important for small
consumer and appliance devices, as these appliances may be shutdown and
restarted often.