Adaptive Memory Management via Priority Bands and Timestamped Queues
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In data processing systems, managing memory resources across multiple applications is challenging due to competing demands, leading to adverse user experiences when terminating applications based solely on size or age, as priority does not always align with application importance.
Innovation Solution
Implementing a memory usage queue and priority queue to track memory allocation and usage, where tokens with timestamps are used to identify unused memory pages and applications are terminated based on priority bands, ensuring efficient memory management and reducing resource consumption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If applications are terminated based on size or age to increase free memory, then memory availability is improved, but user experience deteriorates because priority does not align with application importance
Solution Approach 1:
The patent changes the termination criterion from static parameters (size, age) to dynamic parameters (priority bands, memory pressure levels). Applications are categorized into priority bands (e.g., high, medium, low) and termination decisions are made based on current memory pressure conditions, allowing the system to adaptively select which applications to terminate based on real-time state rather than fixed characteristics.
Solution Approach 2:
The system dynamically adjusts memory management behavior based on current memory pressure conditions. When memory pressure is low, the system is less aggressive in terminating applications. When memory pressure is high, the system becomes more aggressive and terminates lower-priority applications. This dynamic adaptation ensures that user experience is maintained under normal conditions while memory availability is ensured under stress.
2Quantity of substance
If garbage collection is activated to reclaim memory from non-running applications, then free memory is increased, but system complexity increases due to additional monitoring and management overhead
Solution Approach 1:
The system performs preliminary classification of applications into priority bands during normal operation, rather than making termination decisions at the moment of memory pressure. This pre-organization of applications by priority reduces the complexity of decision-making during memory pressure events, as the system only needs to identify which priority band to target rather than evaluating all applications in real-time.
Solution Approach 2:
The patent segments applications into distinct priority bands (e.g., high, medium, low priority) based on their importance and usage characteristics. This segmentation simplifies memory management by dividing the complex task of application selection into manageable categories, allowing the system to focus termination efforts on specific segments rather than evaluating all applications uniformly.
3Adaptability or versatility
If multiple applications share memory resources in a mobile device, then device versatility is improved, but memory pressure increases leading to more frequent terminations
Solution Approach 1:
The patent applies different memory management policies to different applications based on their local characteristics and priority bands. High-priority applications (such as those currently in use or critical for user experience) are protected from termination, while lower-priority applications are more susceptible to termination during memory pressure. This localized differentiation allows the system to maintain application diversity when memory is adequate while enabling aggressive memory reclamation when needed.
Data Source
AI summary
A method for resource management of a data processing system is described herein. According to one embodiment, a token is periodically pushed into a memory usage queue, where the token includes a timestamp indicating time entering the memory usage queue. The memory usage queue stores a plurality of memory page identifiers (IDs) identifying a plurality of memory pages currently allocated to a plurality of programs running within the data processing system. In response to a request to reduce memory usage, a token is popped from the memory usage queue. A timestamp of the popped token is then compared with current time to determine whether a memory usage reduction action should be performed.


