COOPERATIVE MEMORY RESOURCE MANAGEMENT FOR VIRTUALIZED COMPUTING DEVICES
First Claim
1. A method of managing memory in a computing device having host and guest systems that share memory resources, each of the host and guest systems configured to terminate processes upon experiencing memory pressure, comprising:
- determining a first difference that is based on a memory availability value in the host system and a memory availability value in the guest system;
determining a second difference that is based on an amount of memory allocated to hidden applications running in the host system and an amount of memory allocated to hidden applications running in the guest system; and
allocating memory to a process running in the guest system in accordance with a target value that is a function of the first and second differences.
2 Assignments
0 Petitions
Accused Products
Abstract
A computing device employs a cooperative memory management technique to dynamically balance memory resources between host and guest systems running therein. According to this cooperative memory management technique, memory that is allocated to the guest system is dynamically adjusted up and down according to a fairness policy that takes into account various factors including the relative amount of readily freeable memory resources in the host and guest systems and the relative amount of memory allocated to hidden applications in the host and guest systems.
-
Citations
22 Claims
-
1. A method of managing memory in a computing device having host and guest systems that share memory resources, each of the host and guest systems configured to terminate processes upon experiencing memory pressure, comprising:
-
determining a first difference that is based on a memory availability value in the host system and a memory availability value in the guest system; determining a second difference that is based on an amount of memory allocated to hidden applications running in the host system and an amount of memory allocated to hidden applications running in the guest system; and allocating memory to a process running in the guest system in accordance with a target value that is a function of the first and second differences. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer-readable storage medium comprising instructions to be executed in a computing device having host and guest systems that share memory resources to cause the host system to carry out the steps of:
-
determining a first difference that is based on a memory availability value in the host system and a memory availability value in the guest system; determining a second difference that is based on an amount of memory allocated to hidden applications running in the host system and an amount of memory allocated to hidden applications running in the guest system; and determining a memory allocation adjustment value for the guest system as a function of the first and second differences. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A computing device comprising:
-
a processor in which host and guest systems are executed, and memory that is shared between the host and guest systems, wherein the host system determines a memory allocation adjustment value for the guest system as a function of a first difference that is based on a memory availability value in the host system and a memory availability value in the guest system, and a second difference that is based on an amount of memory allocated to hidden applications running in the host system and an amount of memory allocated to hidden applications running in the guest system. - View Dependent Claims (18, 19, 20, 21, 22)
-
Specification