A computer system includes a software virtual machine (such as Java) for
running one or more applications. An object is provided that is
responsive to a call from an application for placing the virtual machine
and application into a state of suspension. This involves interrupting
all current threads, and recording the state of the components of the
virtual machine, including heap, threads, and stack, into a serialization
data structure. Subsequently the serialization data structure can be
invoked to resume the virtual machine and application from the state of
suspension. Note that many virtual machines can be cloned from the single
stored data structure. One benefit of this approach is that a new virtual
machine can effectively be created in an already initialized state.