Application Memory Management via State Preservation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Computing devices with limited memory face challenges in managing multiple applications, leading to memory overflow conditions that can cause crashes, as traditional memory management techniques are unsuitable for portable devices and require user intervention.
Innovation Solution
A system that monitors memory usage and identifies less important applications to terminate, saving their state parameters to free up memory, allowing these applications to be re-launched transparently when needed, prioritizing dominant applications and using criteria like usage frequency and visibility.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional virtual memory management systems are used on portable devices, then memory overflow conditions can be handled, but the system requires frequent read and write operations to the hard drive which are ill-suited for portable devices with flash memory
Solution Approach 1:
The patent extracts the essential memory management function from complex virtual memory systems by implementing a simplified kernel-based approach that directly monitors and manages application memory usage without relying on disk-based virtual memory swapping. This allows portable devices to handle memory overflow through direct memory control rather than complex disk operations.
Solution Approach 2:
The memory management system operates autonomously by automatically monitoring memory usage thresholds and terminating applications without user intervention. The system self-regulates by detecting when memory limits are reached and executing termination policies based on pre-configured criteria, eliminating the need for manual memory management by the user.
2Quantity of substance
If the user manually manages applications to free up memory, then memory usage can be controlled, but the user experience is disrupted and the system requires continuous user participation
Solution Approach 1:
The system automatically monitors memory usage and terminates applications based on predefined thresholds and policies without requiring user action. The kernel-based memory manager continuously tracks application memory consumption and executes termination decisions autonomously, freeing the user from manual memory management tasks while maintaining effective memory control.
Solution Approach 2:
The memory management system implements continuous feedback loops where the kernel monitors memory usage in real-time and adjusts application termination decisions based on current system state. When memory thresholds are reached, the system receives feedback about available memory resources and automatically adjusts which applications to terminate based on priority and usage patterns.
3Quantity of substance
If applications are terminated to free up memory, then memory availability increases, but the applications lose their state and must be re-launched
Solution Approach 1:
Before terminating an application, the system performs preliminary actions by saving the application's state information to storage. This ensures that when the application needs to be re-launched after memory recovery, its state can be restored without loss, maintaining user progress and application context while still freeing memory for new applications.
Solution Approach 2:
The system temporarily discards application state during termination to free memory, but then recovers this state information by saving it to persistent storage. This allows the application to be re-launched with its state intact, effectively recovering the information that would otherwise be lost during the memory-freeing process.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The subject matter of this specification can be embodied in, among other things, a method that includes executing one or more computer applications and ranking the applications according to one or more criteria that change in response to a user's interaction with the applications. State information for certain of the one or more applications is saved and one or more applications are terminated in response to a memory condition. Subsequently, one of the terminated applications is revived using the saved state information.