Virtual heap for a virtual machine
First Claim
1. A method for managing a virtual memory in a virtual machine, the method comprising:
- executing a process within the virtual machine, wherein the virtual machine provides a platform-independent operating environment on a particular computer platform, wherein the virtual machines comprises a virtual machine virtual memory manager;
the virtual machine virtual memory manager storing objects for the process executing on the virtual machine to a store heap, wherein the objects are for use during execution of the process;
the process referencing a first one of the objects stored in the store heap; and
the virtual machine virtual memory manager copying a section of the store heap including the first object to an in-memory heap in response to the process referencing the first object, wherein the in-memory heap comprises copies of sections of the store heap for the process, and wherein said copying is performed when the first object referenced by the process is in the section of the store heap and not in the in-memory heap when the first object is referenced by the process.
0 Assignments
0 Petitions
Accused Products
Abstract
A virtual heap for a process executing within a virtual machine is described. In one embodiment, the virtual persistent heap may allow the running of an application on a physical heap that is smaller than may otherwise be required. As an example, the virtual persistent heap may be an order of magnitude larger than the physical, in-memory heap. This feature is important for small consumer and appliance devices, as these devices may have a limited amount of memory. In one embodiment, the virtual heap may be maintained on non-volatile memory storage external to the device running the virtual machine, and portions of the heap for the current execution state of the process may be cached in and out of a “physical” heap resident in local memory on the device. For example, the device may connect to a server on the Internet, and the server may provide non-volatile storage space for the virtual heap. In another embodiment, the external storage for the virtual persistent heap may reside on a non-volatile storage attached to the device, for example, a Flash card or hard disk drive. In one embodiment of the virtual heap, the entire heap for a process may be made persistent. 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 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.
-
Citations
34 Claims
-
1. A method for managing a virtual memory in a virtual machine, the method comprising:
-
executing a process within the virtual machine, wherein the virtual machine provides a platform-independent operating environment on a particular computer platform, wherein the virtual machines comprises a virtual machine virtual memory manager;
the virtual machine virtual memory manager storing objects for the process executing on the virtual machine to a store heap, wherein the objects are for use during execution of the process;
the process referencing a first one of the objects stored in the store heap; and
the virtual machine virtual memory manager copying a section of the store heap including the first object to an in-memory heap in response to the process referencing the first object, wherein the in-memory heap comprises copies of sections of the store heap for the process, and wherein said copying is performed when the first object referenced by the process is in the section of the store heap and not in the in-memory heap when the first object is referenced by the process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system comprising:
-
a device configured to execute a virtual machine, wherein the virtual machine provides a platform-independent operating environment on a particular computer platform, wherein the virtual machine is configured to execute a process;
a first memory coupled to the device, wherein the first memory is configured to store a store heap for the process, wherein the store heap is comprised within a virtual heap for the process;
a second memory coupled to the device, wherein the second memory is configured to store an in-memory heap for the process, wherein the in-memory heap is comprised within the virtual heap, wherein the in-memory heap comprises cached portions of the store heap for access by the process;
wherein the device is further configured to execute a virtual machine virtual memory manager, wherein the virtual machine virtual memory manager is configured to;
store objects for the process executing on the virtual machine to the store heap, wherein the objects are for use during execution of the process; and
copy a section of the store heap including a first object to an in-memory heap in response to the process referencing the first object when the first object referenced by the process is in the section of the store heap and not in the in-memory heap. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A carrier medium comprising programming instructions executable to manage a virtual memory in a virtual machine, wherein the virtual machine provides a platform-independent operating environment on a particular computer platform, wherein the virtual machine comprises a virtual machine virtual memory manager, and wherein the program instructions are executable to implement:
-
storing objects for a process executing on the virtual machine to a store heap, wherein the objects are for use during execution of the process; and
copying a section of the store heap including a first object to an in-memory heap in response to the process referencing the first object, wherein the in-memory heap comprises copies of sections of the store heap for the process; and
wherein said copying is performed when the first object referenced by the process is in the section of the store heap and not in the in-memory heap when the first object is referenced by the process. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34)
-
Specification