A scheduler of central processing unit (CPU) usage arranges tasks in a
plurality of classes, associating a given task with a top level class and
a sub-class. Weights may be associated with sub-classes and usage targets
associated with top level classes. A target CPU usage may then be
determined for the given task from a weight and a target CPU usage. Once
an actual usage of the CPU by the given task is determined in a first
predetermined evaluation interval, a penalty duration may be determined
for the given task based on the actual usage and the target CPU usage. A
penalty may then be applied to the given task for the penalty duration
during a second predetermined evaluation interval.