CPU Throttling via Process Suspension and Feedback Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern computer applications often consume most or all of the CPU resources, leading to processing delays and potential system crashes due to inefficient CPU resource management, especially when older computers are used, resulting in frustrating user experiences.
Innovation Solution
A system and method that utilize a monitoring component to track CPU resource usage and a control component to suspend and resume processes that exceed predetermined thresholds, allowing for real-time adaptation and minimizing the risk of thread deadlock by throttling entire processes rather than individual threads, with optional user-specific exemptions for critical applications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If modern applications are designed without regard for CPU capabilities, then application functionality and performance are improved, but CPU resource exhaustion and system stability deteriorate
Solution Approach 1:
The system implements continuous monitoring of CPU resource usage by applications and uses this feedback to dynamically adjust process execution. The monitoring component tracks CPU consumption in real-time, and the control component responds by suspending or resuming processes based on threshold violations, creating a closed-loop control system that maintains system stability while allowing high-performance applications to run.
Solution Approach 2:
The system dynamically adjusts process execution states based on real-time CPU resource conditions. Rather than static resource allocation, the control component can suspend, resume, or throttle processes on-the-fly based on current system state, allowing the system to adapt to changing resource demands and maintain stability under varying loads.
2Productivity
If the CPU attempts to respond to multiple program requests by stealing resources, then resource utilization is improved, but thread deadlock and processing delays worsen
Solution Approach 1:
The system implements periodic monitoring of CPU resource usage and periodic suspension/resumption of processes. Rather than allowing continuous resource contention that leads to deadlock, the control component periodically intervenes to suspend processes that exceed thresholds, allowing other processes to access CPU resources, then resumes them later. This periodic action prevents deadlocks while maintaining overall resource utilization.
3Reliability
If conventional CPU resource management methods are used, then system operation is maintained, but time consumption and efficiency deteriorate
Solution Approach 1:
The system implements self-service CPU resource management where the control component automatically monitors, evaluates, and adjusts process execution without user intervention. The monitoring component continuously tracks CPU usage, the control component automatically suspends or resumes processes based on predefined thresholds, and the system adapts to changing conditions autonomously, eliminating the need for manual resource management while maintaining system operation.
Data Source
AI summary
Systems and methods are disclosed that facilitate central processing unit (CPU) throttling utilizing processes to facilitate enhanced management of CPU resources and to mitigate system crashes. A process (or group thereof) that occupies CPU resources at a percentage greater than a selectable predetermined threshold percentage can be monitored, suspended for a variable time period, and resumed. The process can be monitored to determine whether suspension of the process successfully reduced the percentage of CPU resources occupied by the process. Feedback information can be generated to facilitate a determination regarding a most suitable increase or decrease to suspension time of the process in order to minimize the number of reiterations required to successfully throttle the process. The invention also provides for an Ignore functionality, via which a process (or group thereof) can be exempted from throttling based on an exemption of the process, group of processes, and/or user.


