Adaptive Memory Management via Priority Bands and Timestamped Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvefree memory capacityVSAvoidadverse user experience
Core Design Contradiction:
Quantity of substanceVSObject-affected harmful factors

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.

Inventive Principle:
Principle #35Parameter changes

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improvefree memory capacityVSAvoidmemory management complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improveapplication diversityVSAvoidmemory pressure
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

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.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9471378B2Adaptive resource management of a data processing system
Publication Date: 2016.10.18 APPLE INC
  • US9471378B2 patent drawing
  • US9471378B2 patent drawing
  • US9471378B2 patent drawing

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.