9871741

Resource Management Based on Device-Specific or User-Specific Resource Usage Profiles

PublishedJanuary 16, 2018
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
19 claims

Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.

Claim 1

Original Legal Text

1. A method implemented by a computing device for managing a resource thereof, comprising: determining a first amount of the resource that is used by a first instance of an application while being executed by the computing device, the determining including determining an amount of the resource that is used by a foreground process associated with the first instance of the application and one or more background tasks associated with the first instance of the application; calculating a first predicted resource usage amount for the application based at least on the first amount by obtaining an average resource usage amount for the application based on the first amount and one or more previously-determined amounts respectively associated with one or more previously-executed instances of the application; storing the first predicted resource usage amount in a data store; determining a second amount of the resource to be allocated to a second instance of the application to be executed by the computing device based at least on the first predicted resource usage amount stored in the data store; and performing one of: in response to determining that an amount of the resource used by the second instance of the application while being executed by the computing device exceeds the second amount, terminating one or more processes that are concurrently executing on the computing device, in response to determining that the second amount of the resource is not currently available, preventing execution of the second instance of the application, or in response to determining that the second amount of the resource is not currently available, terminating one or more processes that are currently executing on the computing device.

Plain English translation pending...
Claim 2

Original Legal Text

2. The method of claim 1 , wherein the resource comprises at least one of: a volatile or non-volatile memory resource; a central processing unit (CPU) resource; an input/output (I/O) resource; a network resource; a power resource; and a sensor resource.

Plain English Translation

This invention relates to resource management in computing systems, specifically addressing the challenge of efficiently allocating and utilizing diverse system resources to optimize performance and energy efficiency. The method involves dynamically managing various types of resources, including volatile or non-volatile memory, central processing unit (CPU) resources, input/output (I/O) resources, network resources, power resources, and sensor resources. By dynamically adjusting the allocation and utilization of these resources based on system demands, the invention aims to improve overall system efficiency, reduce power consumption, and enhance performance. The method may involve monitoring resource usage, predicting future demands, and reallocating resources accordingly to prevent bottlenecks or underutilization. This approach is particularly useful in systems where resource availability is limited or where energy efficiency is a priority, such as in mobile devices, embedded systems, or data centers. The invention ensures that resources are allocated optimally, balancing performance needs with energy constraints to extend battery life or reduce operational costs.

Claim 3

Original Legal Text

3. The method of claim 1 , wherein calculating the first predicted resource usage amount for the application based on at least the first amount further comprises: obtaining a maximum resource usage amount for the application by comparing the first amount to one or more previously-determined amounts associated with one or more previously-executed instances of the application; and calculating the first predicted resource usage amount based also on the maximum resource usage amount.

Plain English Translation

This invention relates to predicting resource usage for applications in a computing environment. The problem addressed is the need to accurately forecast resource consumption to optimize allocation and prevent performance degradation. The method involves calculating a predicted resource usage amount for an application by analyzing historical data from previous executions. Specifically, the method obtains a maximum resource usage amount by comparing a current observed resource usage value to one or more previously-determined values from prior instances of the application. The predicted resource usage amount is then calculated based on both the current observed value and this maximum historical value. This approach improves accuracy by incorporating historical peaks in resource consumption, ensuring that predictions account for worst-case scenarios. The method may be applied to various computing resources, such as CPU, memory, or storage, and can be used in cloud computing, virtualization, or containerized environments to dynamically allocate resources efficiently. By leveraging historical data, the system avoids over-provisioning or under-provisioning, leading to cost savings and better performance.

Claim 4

Original Legal Text

4. The method of claim 1 , wherein the determining, calculating and storing steps comprise: determining the first amount of the resource that is used by the first instance of the application while being executed by the computing device on behalf of a first user; calculating the first predicted resource usage amount for the application and the first user based at least on the first amount; storing the first predicted resource usage amount in the data store; and determining the second amount of the resource to be allocated to the second instance of the application to be executed by the computing device on behalf of the first user based at least on the first predicted resource usage amount stored in the data store; the method further comprising: determining a third amount of the resource that is used by a third instance of the application while being executed by the computing device on behalf of a second user; calculating a second predicted resource usage amount for the application and the second user based at least on the third amount; storing the second predicted resource usage amount in the data store; and determining a fourth amount of the resource to be allocated to a fourth instance of the application to be executed by the computing device on behalf of the second user based at least on the second predicted resource usage amount stored in the data store.

Plain English Translation

This invention relates to resource allocation in computing systems, specifically optimizing resource distribution for multiple instances of an application executed on behalf of different users. The problem addressed is inefficient resource allocation, where computing devices may allocate resources statically or without considering historical usage patterns, leading to underutilization or overutilization of system resources. The method involves monitoring resource usage for application instances executed on a computing device. For a first user, the system determines the actual resource consumption of a first application instance, calculates a predicted resource usage amount based on this consumption, and stores the prediction in a data store. When allocating resources to a second instance of the same application for the same user, the system uses the stored prediction to determine the appropriate resource allocation. Similarly, for a second user, the system monitors a third instance of the application, calculates a separate predicted usage amount, and uses this prediction to allocate resources to a fourth instance for the second user. This approach allows dynamic, user-specific resource allocation based on historical usage patterns, improving efficiency and performance. The system ensures that resource allocation is tailored to individual user behavior, reducing waste and enhancing system responsiveness.

Claim 5

Original Legal Text

5. The method of claim 1 , wherein the foreground process associated with the first instance of the application provides a user interface for the first instance of the application.

Plain English Translation

A system and method for managing multiple instances of an application on a computing device addresses the challenge of efficiently handling concurrent application instances while maintaining user interface responsiveness. The invention involves launching a first instance of an application in the foreground, where this instance provides a user interface for interaction. A second instance of the same application is launched in the background, operating without a dedicated user interface. The background instance executes tasks independently, such as processing data or performing computations, while the foreground instance remains responsive to user inputs. The system ensures that the background instance does not interfere with the foreground instance's performance, allowing seamless multitasking. The invention may also include mechanisms to synchronize data between instances or prioritize resource allocation to maintain system stability. This approach optimizes resource usage and enhances user experience by enabling concurrent application execution without compromising interface responsiveness.

Claim 6

Original Legal Text

6. The method of claim 1 , wherein at least one of the one or more background tasks associated with the first instance of the application is executed concurrently with the foreground process.

Plain English Translation

A method for managing application processes involves executing background tasks concurrently with a foreground process in a computing system. The method addresses the challenge of optimizing system performance by efficiently handling background operations without disrupting the primary user-facing tasks. The system includes an application with at least one instance running in the foreground, where the foreground process handles user interactions and displays the application interface. The method further involves one or more background tasks associated with the application instance, such as data synchronization, updates, or resource management. These background tasks are executed simultaneously with the foreground process to improve responsiveness and resource utilization. The concurrent execution ensures that background operations do not block the foreground process, maintaining smooth user experience while background activities proceed in the background. The method may also include prioritizing tasks, managing system resources, or dynamically adjusting task execution based on system conditions to further enhance efficiency. This approach is particularly useful in applications requiring continuous background processing, such as messaging apps, cloud-based services, or real-time data applications.

Claim 7

Original Legal Text

7. The method of claim 1 , wherein at least one of the one or more background tasks associated with the first instance of the application is initiated by the foreground process.

Plain English Translation

A system and method for managing background tasks in a computing environment, particularly in applications where foreground and background processes interact. The invention addresses the inefficiency and resource contention that occurs when background tasks are initiated independently of the foreground process, leading to poor performance, unnecessary resource usage, or conflicts between tasks. The solution involves a mechanism where at least one background task associated with an application instance is explicitly initiated by the foreground process. This ensures that background tasks are triggered in a controlled manner, aligned with the foreground process's state or user interactions, improving coordination and efficiency. The foreground process may initiate background tasks based on specific events, user actions, or application logic, ensuring that background operations are relevant and timely. This approach reduces redundant or conflicting tasks, optimizes resource allocation, and enhances overall system performance. The invention may be applied in various computing environments, including mobile devices, desktop applications, or cloud-based systems, where efficient task management is critical.

Claim 8

Original Legal Text

8. The method of claim 1 , wherein obtaining the average resource usage amount for the application based on the first amount and the one or more previously-determined amounts respectively associated with the one or more previously-executed instances of the application comprises: multiplying the first amount by a first weighting factor to obtain a first product; multiplying a running average amount obtained based on at least the one or more previously-determined amounts by a second weighting factor to obtain a second product; and summing the first product and the second product.

Plain English Translation

This invention relates to resource usage estimation for applications, particularly in computing environments where accurate prediction of resource consumption is critical for performance optimization. The problem addressed is the need for a reliable method to estimate the average resource usage of an application based on both current and historical execution data, ensuring efficient resource allocation and avoiding over- or under-provisioning. The method involves calculating an updated average resource usage amount for an application by combining a newly measured resource usage amount (first amount) with one or more previously-determined amounts from prior executions of the same application. The calculation uses a weighted average approach, where the first amount is multiplied by a first weighting factor to produce a first product, and a running average derived from historical data is multiplied by a second weighting factor to produce a second product. The final average is obtained by summing these two products. This weighted averaging technique allows for dynamic adjustment of the influence of recent versus historical data, improving accuracy in resource estimation over time. The method ensures that both immediate and long-term usage trends are considered, providing a balanced and adaptive estimation model. This approach is particularly useful in cloud computing, virtualization, and workload management systems where resource allocation must be optimized for efficiency and cost-effectiveness.

Claim 9

Original Legal Text

9. The method of claim 8 , wherein the first weighting factor is larger than the second weighting factor.

Plain English Translation

A system and method for optimizing data processing in a distributed computing environment addresses the challenge of efficiently allocating computational resources across multiple nodes to minimize processing time and energy consumption. The method involves assigning tasks to nodes based on their processing capabilities and current workload, using a weighted allocation scheme to prioritize nodes with higher efficiency. The allocation process includes determining a first weighting factor for a primary node and a second weighting factor for a secondary node, where the first weighting factor is larger than the second. This ensures that the primary node, which may have superior processing power or lower latency, receives a higher proportion of tasks, thereby improving overall system performance. The method further includes dynamically adjusting the weighting factors in response to changes in node availability or workload distribution, ensuring adaptive and efficient resource utilization. The system may also incorporate load-balancing techniques to prevent overloading any single node while maintaining optimal throughput. This approach is particularly useful in large-scale distributed systems, such as cloud computing or data center environments, where efficient resource management is critical for performance and cost-effectiveness.

Claim 10

Original Legal Text

10. A computer program product comprising a computer-readable memory device having computer program logic recorded thereon that when executed by at least one processor of a computing device causes the at least one processor to perform operations, the operations comprising: receiving a request to launch an application; obtaining a predicted resource usage amount for the application, the predicted resource usage amount being based on a monitored usage of a resource of the computing device by a foreground process associated with the application and one or more background tasks associated with the application during multiple prior executions of the application, the predicted resource usage amount being obtained by calculating an average resource usage amount for the application based on the monitored usage of the resource during the multiple prior executions of the application; determining whether a sufficient amount of a resource is available by comparing the predicted resource usage amount to an amount of the resource that is currently available; and allowing the application to launch in response to at least determining that a sufficient amount of the resource is available.

Plain English Translation

This invention relates to optimizing resource management in computing devices by predicting application resource usage before launch. The problem addressed is inefficient resource allocation, where applications may launch without checking available resources, leading to performance degradation or crashes. The solution involves a computer program that predicts an application's resource needs based on historical usage data. When a user requests to launch an application, the program retrieves a predicted resource usage amount by averaging monitored resource consumption from prior executions. This includes tracking both foreground processes and background tasks associated with the application. The program then compares this predicted usage against currently available resources. If sufficient resources are available, the application is allowed to launch. If not, the launch may be delayed or denied to prevent system instability. The approach ensures smoother operation by preemptively managing resource allocation based on empirical data rather than static thresholds. This method is particularly useful for devices with limited resources, such as mobile or embedded systems, where efficient resource utilization is critical.

Claim 11

Original Legal Text

11. The computer program product of claim 10 , wherein the resource comprises one of: a volatile or non-volatile memory resource; a central processing unit (CPU) resource; an input/output (I/O) resource; a network resource; a power resource; and a sensor resource.

Plain English Translation

This invention relates to resource management in computing systems, specifically addressing the challenge of efficiently allocating and monitoring diverse hardware and software resources to optimize system performance and reliability. The invention provides a computer program product that includes instructions for managing resources within a computing environment. The resource management system is designed to handle various types of resources, including volatile or non-volatile memory, central processing unit (CPU) resources, input/output (I/O) resources, network resources, power resources, and sensor resources. The program product enables dynamic allocation, monitoring, and optimization of these resources to ensure efficient utilization and prevent bottlenecks. By integrating these capabilities, the system enhances overall system performance, reduces downtime, and improves energy efficiency. The invention is particularly useful in environments where multiple resources must be coordinated to meet performance demands while maintaining stability and reliability. The resource management system may also include mechanisms for detecting resource conflicts, reallocating resources as needed, and providing alerts or adjustments to maintain optimal operation. This approach ensures that computing systems can adapt to changing workloads and resource demands without manual intervention.

Claim 12

Original Legal Text

12. The computer program product of claim 10 , wherein the operations further comprise: not allowing the application to launch in response to at least determining that a sufficient amount of the resource is not available.

Plain English Translation

This invention relates to resource management in computing systems, specifically preventing applications from launching when insufficient system resources are available. The technology addresses the problem of system instability or performance degradation caused by launching applications when critical resources such as memory, CPU, or storage are insufficient. The invention involves a computer program product that monitors system resource availability before allowing an application to launch. If the system determines that the required resources are not sufficiently available, the application launch is blocked to prevent resource exhaustion or system slowdowns. The solution ensures that applications only launch when adequate resources are present, maintaining system stability and performance. The invention may also include additional checks, such as verifying resource availability thresholds or prioritizing resource allocation based on application importance. By enforcing these constraints, the system avoids overloading and ensures smooth operation. The invention is particularly useful in environments with limited resources or where multiple applications compete for system resources.

Claim 13

Original Legal Text

13. The computer program product of claim 10 , wherein the operations further comprise: causing one or more processes to be terminated in response to at least determining that a sufficient amount of the resource is not available.

Plain English Translation

This invention relates to resource management in computing systems, specifically addressing the problem of inefficient or uncontrolled resource allocation that can lead to system instability or performance degradation. The invention provides a method for monitoring and managing system resources, such as memory, CPU, or storage, to ensure optimal performance and stability. The system includes a monitoring component that tracks resource usage in real-time and compares it against predefined thresholds or policies. When resource availability falls below a critical level, the system automatically triggers corrective actions to mitigate the issue. One such action involves terminating one or more processes that are consuming excessive resources, thereby freeing up the required capacity. The termination decision is based on predefined criteria, such as process priority, resource consumption patterns, or user-defined rules. The system may also log the termination events for auditing or further analysis. This approach helps prevent system crashes, improves overall efficiency, and ensures that critical applications continue to operate smoothly. The invention is particularly useful in environments where resource contention is common, such as cloud computing, virtualized systems, or multi-user servers.

Claim 14

Original Legal Text

14. The computer program product of claim 10 , wherein the operations further comprise: in response to determining that an amount of the resource used by the application after being launched exceeds the predicted resource usage amount, terminating one or more processes that are concurrently executing on the computing device.

Plain English Translation

This invention relates to resource management in computing systems, specifically addressing the problem of applications consuming excessive resources after launch, which can degrade system performance or cause instability. The invention provides a method to predict an application's resource usage before launch and take corrective actions if actual usage exceeds predictions. The system first analyzes historical data to predict the expected resource consumption (e.g., CPU, memory, or storage) of an application when launched. Upon launching the application, the system monitors its actual resource usage. If the monitored usage exceeds the predicted threshold, the system identifies and terminates one or more concurrently executing processes to free up resources. The termination may be based on priority, resource impact, or other criteria to minimize disruption. This ensures the application operates within acceptable limits while maintaining system stability. The invention may also include additional features such as adjusting resource allocation dynamically, logging resource usage patterns for future predictions, or notifying the user of resource constraints. The solution is particularly useful in environments with limited resources, such as mobile devices or embedded systems, where efficient resource management is critical. By proactively managing resource-intensive applications, the system prevents performance degradation and system crashes.

Claim 15

Original Legal Text

15. The computer program product of claim 10 , wherein the receiving step comprises receiving the request to launch the application on behalf of a first user and wherein the obtaining step comprises obtaining a predicted resource usage amount for the application and the first user.

Plain English Translation

This invention relates to optimizing resource allocation in cloud computing environments by predicting application resource usage for individual users. The problem addressed is inefficient resource provisioning, where cloud systems either over-allocate resources, leading to wasted costs, or under-allocate resources, causing performance degradation. The solution involves a computer program that receives a request to launch an application for a specific user and predicts the resource requirements for that application based on the user's historical usage patterns. This prediction allows the system to dynamically allocate the optimal amount of computing resources (such as CPU, memory, or storage) needed to run the application efficiently without over-provisioning. The prediction model considers factors like the user's past interactions with the application, typical workload patterns, and application-specific resource demands. By tailoring resource allocation to individual users, the system improves cost efficiency and performance while reducing waste. The invention may be implemented as part of a cloud management platform or a virtualization layer that interfaces with underlying hardware resources. The predicted resource usage is then used to configure the application's execution environment, ensuring that the allocated resources match the expected demand.

Claim 16

Original Legal Text

16. A system implemented on a computing device, comprising: at least one processor; and memory that is accessible by the at least one processor, the memory storing components for execution by the at least one processor, the components including: a resource manager that monitors a pattern of usage of a resource of the computing device by an application, stores information associated with the pattern of usage, and uses the stored information to predictively allocate at least a portion of the resource to at least one process prior to execution thereof by the at least one processor, the monitoring a pattern of usage of the resource of the computing device including monitoring an amount of the resource that is used by a foreground process associated with the application and one or more background tasks associated with the application, and the predictive allocation comprising obtaining a predicted resource usage amount by calculating an average resource usage amount for the application based on a monitored usage of the resource during multiple prior executions of the application.

Plain English Translation

The system is designed for efficient resource management in computing devices, addressing the problem of resource contention and performance degradation when multiple applications and processes compete for limited system resources. The system monitors resource usage patterns of applications, including both foreground processes and background tasks, to optimize resource allocation. By analyzing historical usage data, the system predicts future resource demands and pre-allocates resources to processes before execution, reducing latency and improving performance. The predictive allocation is based on calculating an average resource usage amount for an application across multiple prior executions, ensuring that resources are allocated in a manner that aligns with expected demand. This proactive approach helps prevent resource bottlenecks and enhances overall system efficiency. The system is implemented on a computing device with at least one processor and memory, where the resource manager component handles the monitoring, storage, and predictive allocation functions. The solution is particularly useful in environments where applications have variable resource requirements, such as mobile devices or multi-tasking systems.

Claim 17

Original Legal Text

17. The system of claim 16 , wherein the at least one resource comprises: a volatile or non-volatile memory resource; a central processing unit (CPU) resource; an input/output (I/O) resource; a network resource; a power resource; and a sensor resource.

Plain English Translation

This invention relates to a system for managing and allocating resources in a computing environment. The system addresses the problem of efficiently distributing and utilizing various hardware and software resources to optimize performance, reduce costs, and improve reliability in computing systems. The system includes at least one resource, which may be a volatile or non-volatile memory resource, a central processing unit (CPU) resource, an input/output (I/O) resource, a network resource, a power resource, or a sensor resource. These resources are dynamically allocated and managed to meet the demands of different applications or processes running on the system. The system may also include a resource management module that monitors resource usage, predicts future needs, and adjusts allocations accordingly. This ensures that critical tasks receive sufficient resources while non-critical tasks are allocated resources based on availability. The system may further include a communication interface for interacting with external devices or networks, allowing for remote monitoring and control of resource allocation. The invention aims to enhance system efficiency, scalability, and adaptability in various computing environments, including data centers, cloud computing platforms, and embedded systems.

Claim 18

Original Legal Text

18. The system of claim 16 , wherein the resource manager predictively allocates the at least a portion of the resource to an application prior to launching of the application by any entity.

Plain English Translation

This invention relates to resource management in computing systems, specifically addressing the challenge of efficiently allocating system resources to applications. The system includes a resource manager that dynamically allocates resources such as memory, processing power, or storage to applications based on their requirements. The resource manager monitors system conditions, application demands, and historical usage patterns to optimize resource distribution. A key feature is the ability to predictively allocate resources to an application before the application is launched by any entity. This predictive allocation ensures that resources are available when needed, reducing latency and improving system performance. The system may also include a monitoring module to track resource usage and adjust allocations in real-time. Additionally, the resource manager may prioritize resource allocation based on application importance or urgency, ensuring critical applications receive necessary resources first. The invention aims to enhance system efficiency by minimizing resource contention and improving application responsiveness.

Claim 19

Original Legal Text

19. The system of claim 16 , wherein the at least one resource comprises memory and wherein the resource manager loads at least a portion of an application or data associated with an application into the predictively-allocated memory prior to launching of the application by an entity.

Plain English translation pending...
Patent Metadata

Filing Date

Unknown

Publication Date

January 16, 2018

Inventors

Timothy M. Kurtzman
David A. Whitechapel
Abolade Gbadegesin
Adina M. Trufinescu
Jeremy P. Robinson
Samarth H. Shah
Akhilesh Kaza
Andrew Clinick

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, FAQs, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “RESOURCE MANAGEMENT BASED ON DEVICE-SPECIFIC OR USER-SPECIFIC RESOURCE USAGE PROFILES” (9871741). https://patentable.app/patents/9871741

© 2026 Nomic Interactive Technology LLC. Machine-readable context available at /api/llm-context/9871741. See llms.txt for full attribution policy.