Method and system for regulating background tasks using performance measurements
First Claim
1. A computer-readable medium having computer-executable instructions, comprising, executing a background task, receiving data from a software component indicative of a measured progress of the background task relative to past performance data of the background task, and determining when to again execute the background task based on the data including comparing the measured progress of the background task against a target progress, the target progress based on data measured from previously running the background task.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for regulating tasks of background processes so as to reduce interference with foreground processes. The progress rate of a background task (e.g., amount of work performed per unit time) is measured and evaluated against a target amount. If the progress rate appears degraded, the background task is suspended for a computed time interval so as to back off from its interference with a foreground process. Each time the progress rate appears degraded, the time interval is exponentially increased from its previous value up to a maximum, however if the performance appears normal, the time interval is reset to a minimum. Evaluation of the work is statistically based so as to eliminate variations in measurements, and automatic calibration of the target amount is provided, as is a mechanism for prioritizing multiple background tasks.
-
Citations
45 Claims
- 1. A computer-readable medium having computer-executable instructions, comprising, executing a background task, receiving data from a software component indicative of a measured progress of the background task relative to past performance data of the background task, and determining when to again execute the background task based on the data including comparing the measured progress of the background task against a target progress, the target progress based on data measured from previously running the background task.
- 22. A system for regulating the execution of a background task, comprising, a task regulator comprising software code for authorizing the background task to execute, a performance evaluator comprising software code for receiving measured performance data of the background task and evaluating the measured performance data with respect to past performance data of the background task and providing progress information corresponding thereto, the performance evaluator evaluating the measured performance data with respect to past performance data by comparing measured progress data against target progress data, and a computation mechanism comprising software code connected to receive the progress information from the performance evaluator, the task regulator connected to the computation mechanism for authorizing the background task to again execute based on information received from the computation mechanism.
- 35. A method of executing a background process, comprising the steps of, executing a task of the background process, measuring the progress of the task via software code, comparing the progress of the task against a target progress that is based on at least one previous progress measurement of the task, and if the progress of the task is degraded relative to the target progress, increasing a delay time from a previous value thereof, and suspending for the delay time before re-executing the task.
-
43. A computer-readable medium having computer-executable instructions, comprising, executing a background task, receiving data from a software component indicative of a measured progress of the background task relative to past performance data of the background task, and determining when to again execute the background task based on the data, including statistically combining the data received with previous data.
- 44. A computer-readable medium having computer-executable instructions, comprising, executing a background task, receiving data from a software component indicative of a measured progress of the background task relative to past performance data of the background task, determining a target value indicative of a target amount of work, and determining when to again execute the background task based on the data, including comparing the measured progress of the background task against the target value.
Specification