Fine grained adaptive throttling of background processes
First Claim
1. One or more computer readable non-transitory storage mediums storing one or more sequences of instructions, which when executed by one or more processors, cause:
- monitoring utilization of a shared resource by one or more background processes and one or more foreground processes, wherein the one or more foreground processes and the one or more background process execute at respective frequencies of execution;
dynamically adjusting a frequency at which the one or more background processes are executed based on a comparison of a current utilization of the shared resource with a threshold value, without adjusting the frequency in which the one or more foreground processes are executed, the dynamically adjusting including decreasing the frequency of the one or more background processes in accordance with a determination that the current utilization is above the threshold value;
determining, without user input, whether the monitored utilization of the shared resource exceeds a ceiling threshold value which is greater than the threshold value, wherein the threshold value and the ceiling threshold value correspond to resource utilization levels;
in accordance with a determination that the monitored utilization of the shared resource exceeds the ceiling threshold value, updating, without user input, the threshold value; and
dynamically adjusting a frequency at which the one or more background processes are executed based on a comparison of the current utilization of the shared resource with the updated threshold value.
4 Assignments
0 Petitions
Accused Products
Abstract
Approaches for throttling backgrounds processes to a high degree of precision. The utilization of a shared resource that is used by one or more background processes is monitored. A frequency at which the one or more background processes are executed is dynamically adjusted based on the current utilization of the shared resource without adjusting the frequency in which one or more foreground processes are executed to ensure that the utilization of the shared resource does not exceed a threshold value. The monitoring of the utilization of the shared resource may be performed more often than the adjusted of the frequency at which the background processes are executed, and the utilization of the shared resources may be performed many times a second. Consequently, the utilization of the shared resource may be above a certain level (such as 65%) and less than another level, such as 90%, when background processes are executing.
-
Citations
20 Claims
-
1. One or more computer readable non-transitory storage mediums storing one or more sequences of instructions, which when executed by one or more processors, cause:
-
monitoring utilization of a shared resource by one or more background processes and one or more foreground processes, wherein the one or more foreground processes and the one or more background process execute at respective frequencies of execution; dynamically adjusting a frequency at which the one or more background processes are executed based on a comparison of a current utilization of the shared resource with a threshold value, without adjusting the frequency in which the one or more foreground processes are executed, the dynamically adjusting including decreasing the frequency of the one or more background processes in accordance with a determination that the current utilization is above the threshold value; determining, without user input, whether the monitored utilization of the shared resource exceeds a ceiling threshold value which is greater than the threshold value, wherein the threshold value and the ceiling threshold value correspond to resource utilization levels; in accordance with a determination that the monitored utilization of the shared resource exceeds the ceiling threshold value, updating, without user input, the threshold value; and dynamically adjusting a frequency at which the one or more background processes are executed based on a comparison of the current utilization of the shared resource with the updated threshold value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method for throttling backgrounds processes to a high degree of precision, comprising:
-
monitoring utilization of a shared resource by one or more background processes and one or more foreground processes, wherein the one or more foreground processes and the one or more background process execute at respective frequencies of execution; dynamically adjusting a frequency at which the one or more background processes are executed based on a comparison of a current utilization of the shared resource with a threshold value, without adjusting the frequency in which the one or more foreground processes are executed, the dynamically adjusting including decreasing the frequency of the one or more background processes in accordance with a determination that the current utilization is above the threshold value; determining, without user input, whether the monitored utilization of the shared resource exceeds a ceiling threshold value which is greater than the threshold value, wherein the threshold value and the ceiling threshold value correspond to resource utilization levels; in accordance with a determination that the monitored utilization of the shared resource exceeds the ceiling threshold value, updating, without user input, the threshold value; and dynamically adjusting a frequency at which the one or more background processes are executed based on a comparison of the current utilization of the shared resource with the updated threshold value.
-
-
17. An apparatus, comprising:
-
one or more processors; and one or more computer readable storage medium storing one or more sequences, which when executed by the one or more processors, cause; monitoring utilization of a shared resource by one or more background processes and one or more foreground processes, wherein the one or more foreground processes and the one or more background process execute at respective frequencies of execution; dynamically adjusting a frequency at which the one or more background processes are executed based on a comparison of a current utilization of the shared resource with a threshold value, without adjusting the frequency in which the one or more foreground processes are executed, the dynamically adjusting including decreasing the frequency of the one or more background processes in accordance with a determination that the current utilization is above the threshold value; determining, without user input, whether the monitored utilization of the shared resource exceeds a ceiling threshold value which is greater than the threshold value, wherein the threshold value and the ceiling threshold value correspond to resource utilization levels; in accordance with a determination that the monitored utilization of the shared resource exceeds the ceiling threshold value, updating, without user input, the threshold value; and dynamically adjusting a frequency at which the one or more background processes are executed based on a comparison of the current utilization of the shared resource with the updated threshold value. - View Dependent Claims (18, 19, 20)
-
Specification