Systems and methods of controlling memory footprint
First Claim
1. A computing device comprising:
- a physical memory; and
at least one processor coupled to the physical memory and configured to;
allocate at least one portion of the physical memory for use by a virtual machine (VM);
partition the at least one portion of the physical memory into a plurality of memory slices associated with the VM;
associate each memory slice of the plurality of memory slices with an artificial cost to access the physical memory within the memory slice;
receive a memory allocation request;
identify at least one memory slice of the plurality of memory slices based on the artificial cost to access the physical memory within the at least one memory slice;
allocate space within the at least one memory slice that is sufficient to satisfy the memory allocation request; and
respond to the memory allocation request with an identifier of the space.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods that manage memory usage by a virtual machine are provided. These systems and methods compact the virtual machine'"'"'s memory footprint, thereby promoting efficient use of memory and gaining performance benefits of increased data locality. In some embodiments, a guest operating system running within the virtual machine is enhanced to allocate its VM memory in a compact manner. The guest operating system includes a memory manager that is configured to reference an artificial access cost when identifying memory areas to allocate for use by applications. These access costs are described as being artificial because they are not representative of actual, hardware based access costs, but instead are fictitious costs that increase as the addresses of the memory areas increase. Because of these increasing artificial access costs, the memory manager identifies memory areas with lower addresses for allocation and use prior to memory areas with higher addresses.
38 Citations
21 Claims
-
1. A computing device comprising:
-
a physical memory; and at least one processor coupled to the physical memory and configured to; allocate at least one portion of the physical memory for use by a virtual machine (VM); partition the at least one portion of the physical memory into a plurality of memory slices associated with the VM; associate each memory slice of the plurality of memory slices with an artificial cost to access the physical memory within the memory slice; receive a memory allocation request; identify at least one memory slice of the plurality of memory slices based on the artificial cost to access the physical memory within the at least one memory slice; allocate space within the at least one memory slice that is sufficient to satisfy the memory allocation request; and respond to the memory allocation request with an identifier of the space. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of controlling a physical memory footprint of a virtual machine, the method comprising:
-
allocating at least one portion of a physical memory for use by a virtual machine (VM); partitioning the at least one portion of the physical memory into a plurality of memory slices associated with the VM; associating each memory slice of the plurality of memory slices with an artificial cost to access the physical memory within the memory slice; receiving a memory allocation request; identifying at least one memory slice of the plurality of memory slices based on the artificial cost to access the physical memory within the at least one memory slice; allocating space within the at least one memory slice that is sufficient to satisfy the memory allocation request; and responding to the memory allocation request with an identifier of the space. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable medium encoded with instructions that when executed by one or more processors cause a process for controlling a physical memory footprint for a virtual machine to be carried out, the process comprising:
-
allocating at least one portion of a physical memory for use by a virtual machine (VM); partitioning the at least one portion of the physical memory into a plurality of memory slices associated with the VM; associating each memory slice of the plurality of memory slices with an artificial cost to access the physical memory within the memory slice; receiving a memory allocation request; identifying at least one memory slice of the plurality of memory slices based on the artificial cost to access the physical memory within the at least one memory slice; allocating space within the at least one memory slice that is sufficient to satisfy the memory allocation request; and responding to the memory allocation request with an identifier of the space. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification