Application Sleep State Management for Resource Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Running applications continue to consume device resources even when they are not actively engaged by the user, leading to unnecessary power consumption and resource usage.
Innovation Solution
A method and apparatus that modify the application sleep state of running applications based on detected events and runtime characteristics, such as visibility and user interaction, to restrict access to device resources like CPU, GPU, and I/O, by paginating data between volatile and non-volatile storage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the application continues to run and access device resources, then the application can respond quickly when needed, but power consumption increases and resources are wasted when the application is not visible or interacting with the user
Solution Approach 1:
The patent applies dynamics by making the application's resource access characteristics adjustable rather than fixed. The system dynamically transitions applications between different sleep states (S0, S1, S2, S3) based on runtime conditions such as visibility and user interaction. This allows the application to have high resource access when needed for quick response, and low resource access when not needed to reduce power consumption, resolving the contradiction between speed and energy use.
Solution Approach 2:
The patent changes the parameter of resource access characteristics by introducing sleep state levels (S0-S3) that modify CPU access frequency, I/O priority, and memory access patterns. By changing these parameters based on application context (foreground/background, visible/occluded), the system achieves both quick response when needed and low power consumption when not needed, resolving the technical contradiction.
2Reliability
If the application updates the window at the same rate even when occluded, then the application maintains readiness, but device resources are consumed unnecessarily
Solution Approach 1:
The patent applies partial action by providing different degrees of resource access based on application needs. Instead of fully restricting background applications, the system provides partial resource access through sleep states S1 and S2, which allow limited CPU and I/O access. This maintains sufficient application readiness while consuming fewer resources compared to full access, resolving the contradiction between reliability and energy loss.
Solution Approach 2:
The application sleep state management module enables applications to self-regulate their resource usage based on their own runtime characteristics. The system monitors application behavior and automatically adjusts sleep states without requiring explicit user intervention, allowing applications to maintain appropriate readiness levels while conserving energy autonomously.
3Device complexity
If the operating system sets fixed I/O priority and CPU priority for applications, then resource management is simple, but the system cannot adapt to changing application states and user interactions
Solution Approach 1:
The patent segments resource management into distinct sleep state levels (S0, S1, S2, S3), each with specific resource access characteristics. This segmentation allows the system to manage complexity by providing predefined resource allocation patterns while maintaining adaptability through the ability to transition between segments based on application state, resolving the contradiction between simplicity and adaptability.
Solution Approach 2:
The application sleep state management module implements feedback by continuously monitoring application runtime characteristics (visibility, user interaction, resource usage patterns) and adjusting sleep states accordingly. This feedback mechanism enables the system to adapt to changing conditions while maintaining manageable complexity through automated decision-making based on monitored parameters.
Data Source
AI summary
A method and apparatus of a device that modifies an application sleep state of a running application is described. In an exemplary embodiment, the device detects an event associated with the running application. In addition, the device evaluates one or more run-time characteristics of the running application. The device further determines if the running application is a candidate to have the application sleep state of this running application modified based on the monitored one or more run-time characteristics of the running application and the detected event. If the running application is a candidate to have the application sleep state of this running application modified, the device sends a message to the operating system of the device indicating how the application sleep state of the running application is to be modified, where the device includes a virtual memory subsystem that pages data of the running application between volatile storage to non-volatile storage.


