1. A method for generating a checkpoint for a virtual machine (VM) in a virtual computer system, the VM using a virtual disk and VM memory, the method comprising: receiving a signal to generate the checkpoint; determining a time for generating the checkpoint; and at the time of generating the checkpoint: maintaining, in an unmodified state, contents of the virtual disk; saving a device state of the VM and a plurality of registers and settings for one or more virtual devices to a checkpoint data store; saving contents of the VM memory to the checkpoint data store, the VM memory being a subset of a physical memory in the virtual computer system, and a portion of the physical memory that is allocated to the VM; and enabling the VM to continue reading from, writing to, and executing code from the VM memory.