Cooperative Memory Ballooning for Virtualized Host-Guest Fairness
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The challenge in managing memory resources on mobile devices provisioned for both personal and work use is exacerbated by memory shortages, as existing memory management schemes struggle to dynamically allocate memory fairly between the personal and work environments, especially in operating systems like Android that prioritize memory based on user visibility and recency of use, and employ asynchronous process termination.
Innovation Solution
A cooperative memory management technique that dynamically adjusts memory allocation between host and guest systems based on a fairness policy, considering the relative availability of memory resources and memory allocated to hidden applications, using a method called memory ballooning to pin and reallocate memory pages, ensuring that important processes are not terminated prematurely due to memory pressure in one environment.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If memory is dynamically allocated between personal and work environments, then memory utilization is improved, but memory management complexity increases
Solution Approach 1:
The patent segments memory management into distinct personal and work environments using virtualization. Each environment has its own memory space that can be independently managed, with the hypervisor coordinating resource allocation between them. This segmentation allows dynamic memory allocation while maintaining manageable complexity through clear environmental boundaries.
Solution Approach 2:
The patent implements dynamic memory allocation where the hypervisor can reallocate memory pages between personal and work environments based on actual usage requirements. Memory is not statically partitioned but dynamically adjusted, allowing the system to optimize memory utilization while maintaining the ability to manage complexity through controlled dynamic behavior.
2Productivity
If memory is allocated based on user visibility and recency of use, then application performance is improved, but fair memory distribution between environments becomes difficult to ensure
Solution Approach 1:
The patent employs feedback mechanisms where the system monitors memory usage patterns, user visibility, and recency of use across both personal and work environments. This feedback information is used by the hypervisor to make informed memory allocation decisions that balance application performance requirements with fair resource distribution between the two environments.
Solution Approach 2:
The patent changes memory allocation parameters dynamically based on usage patterns. The system adjusts allocation decisions considering factors like user visibility and recency of use, allowing performance optimization while maintaining fairness through parameter-based control that adapts to actual usage conditions rather than static quotas.
3Speed
If asynchronous process termination is used, then system responsiveness is improved, but premature termination of important processes becomes more likely
Solution Approach 1:
The patent implements beforehand cushioning by establishing memory reserves and allocation policies that prevent premature process termination. The hypervisor maintains awareness of process importance and ensures adequate memory allocation to critical processes in both personal and work environments, cushioning against the risks of asynchronous termination while preserving system responsiveness.
Data Source
AI summary
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.


