IP Library Granted Patent US 7,383,548
Granted Patent B2
US 7,383,548 · App. 10/722,480 · Granted Jun 3, 2008

CPU usage regulation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,383,548
App. No.
10/722,480
Granted
Jun 3, 2008
Kind
B2
Abstract

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.

Claims (53)

1. A method of calculating central processing unit (CPU) usage by a given task, the method comprising the steps of:

associating the given task with a top level class and a sub-class, the sub-class being one of a plurality of sub-classes directly associated with a parent class; and

determining a target CPU usage for the given task from a weight associated with the sub-class representing a relative share of a target CPU usage associated with the parent class and a target CPU usage associated with the top level class;

wherein the step of determining the target CPU usage for the given task comprises the steps of:

forming a quotient by dividing the weight associated with the sub-class by a sum of weights associated with the plurality of sub-classes directly associated with the parent class; and

multiplying the target CPU usage associated with the parent class by the quotient.

2. The method of claim 1 further comprising:

determining an actual usage of said CPU by said given task in a first predetermined evaluation interval;

determining a penalty duration for said given task based on said actual usage and said target CPU usage for said given task; and

applying a penalty to said given task for said penalty duration during a second predetermined evaluation interval.

3. The method of claim 2 wherein said applying said penalty comprises demoting a scheduling priority associated with said given task.

4. The method of claim 2 wherein said penalty is applied continuously for said penalty duration.

5. The method of claim 2 wherein said penalty is applied during a plurality of periods over said second predetermined evaluation interval, such that a total duration of application of said penalty is equivalent to said penalty duration.

6. The method of claim 2 wherein said actual usage of said CPU by said given task in said first predetermined evaluation interval is a first actual usage and said penalty duration based on said first actual usage is a first penalty duration, said method further comprising:

determining a second actual usage of said CPU by said given task in said second predetermined evaluation interval;

determining a second penalty duration for said given task based on said second actual usage and said target CPU usage for said given task; and

applying said penalty to said given task for said second penalty duration during a third predetermined evaluation interval.

7. The method of claim 1 , wherein the top level class is the parent class of the sub-class.

8. The method of claim 1 , wherein a further sub-class of the top level class is the parent class of the sub-class.

9. A scheduler for execution in a kernel of a central processing unit (CPU), the scheduler containing data and instructions stored in a computer readable medium to enable tasks to be scheduled for execution by the kernel, the data and instructions allowing the scheduler to perform a method comprising the steps of:

associating a given task with a top level class and a sub-class, the sub-class being one of a plurality of sub-classes directly associated with a parent class; and

determining a target CPU usage for the given task from a weight associated with the sub-class representing a relative share of a target CPU usage associated with the parent class and a target CPU usage associated with the top level class;

wherein the step of determining the target CPU usage for the given task comprises the steps of:

forming a quotient by dividing the weight associated with the sub-class by a sum of weights associated with the plurality of sub-classes directly associated with the parent class; and

multiplying the target CPU usage associated with the parent class by the quotient.

10. The scheduler of claim 9 , wherein the method further comprises the steps of:

determining an actual usage of the CPU by the given task in a first predetermined evaluation interval;

determining a penalty duration for the given task based on the actual usage and the target CPU usage for the given task; and

applying a penalty to the given task for the penalty duration during a second predetermined evaluation interval.

11. The scheduler of claim 10 , wherein the step of applying the penalty comprises demoting a scheduling priority associated with the given task.

12. The scheduler of claim 10 , wherein the penalty is applied continuously for the penalty duration.

13. The scheduler of claim 10 , wherein the penalty is applied during a plurality of periods over the second predetermined evaluation interval, such that a total duration of application of the penalty is equivalent to the penalty duration.

14. The scheduler of claim 10 , wherein the actual usage of the CPU by the given task in the first predetermined evaluation interval is a first actual usage and the penalty duration based on the first actual usage is a first penalty duration, the method further comprising the steps of:

determining a second actual usage of the CPU by the given task in the second predetermined evaluation interval;

determining a second penalty duration for the given task based on the second actual usage and the target CPU usage for the given task; and

applying the penalty to the given task for the second penalty duration during a third predetermined evaluation interval.

15. A computer readable medium containing computer-executable instructions that, when performed by an apparatus for calculating usage of a central processing unit (CPU) in a kernel, cause the apparatus to:

associate a given task with a top level class and a sub-class, the sub-class being one of a plurality of sub-classes directly associated with a parent class; and

determine a target CPU usage for the given task from a weight associated with the sub-class representing a relative share of a target CPU usage associated with the parent class and a target CPU usage associated with the top level class;

wherein the step of determining the target CPU usage for the given task comprises the steps of:

forming a quotient by dividing the weight associated with the sub-class by a sum of weights associated with the plurality of sub-classes directly associated with the parent class; and

multiplying the target CPU usage associated with the parent class by the quotient.

16. The computer readable medium of claim 15 , further containing computer-executable instructions that, when performed by the apparatus for calculating usage of the central processing unit (CPU) in the kernel, further cause the apparatus to:

determine an actual usage of the CPU by the given task in a first predetermined evaluation interval;

determine a penalty duration for the given task based on the actual usage and the target CPU usage for the given task; and

apply a penalty to the given task for the penalty duration during a second predetermined evaluation interval.

17. The computer readable medium of claim 16 , wherein applying the penalty comprises demoting a scheduling priority associated with the given task.

18. The computer readable medium of claim 16 , wherein the penalty is applied continuously for the penalty duration.

19. The computer readable medium of claim 16 , wherein the penalty is applied during a plurality of periods over the second predetermined evaluation interval, such that a total duration of application of the penalty is equivalent to the penalty duration.

20. The computer readable medium of claim 16 , wherein the actual usage of the CPU by the given task in the first predetermined evaluation interval is a first actual usage and the penalty duration based on the first actual usage is a first penalty duration, the computer readable medium further containing computer-executable instructions that, when performed by the apparatus for calculating usage of the central processing unit (CPU) in the kernel, further cause the apparatus to

determine a second actual usage of the CPU by the given task in the second predetermined evaluation interval;

determine a second penalty duration for the given task based on the second actual usage and the target CPU usage for the given task; and

apply the penalty to the given task for the second penalty duration during a third predetermined evaluation interval.

Assignments (6)
RELEASE (REEL 038041 / FRAME 0001) Recorded Jan 2, 2018
From: JPMORGAN CHASE BANK, N.A.
To: RPX CORPORATION; RPX CLEARINGHOUSE LLC
Reel/Frame 044970/0030 →
SECURITY AGREEMENT Recorded Mar 9, 2016
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038041/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2015
From: ROCKSTAR CONSORTIUM US LP; ROCKSTAR CONSORTIUM LLC; BOCKSTAR TECHNOLOGIES LLC; CONSTELLATION TECHNOLOGIES LLC; MOBILESTAR TECHNOLOGIES LLC; NETSTAR TECHNOLOGIES LLC
To: RPX CLEARINGHOUSE LLC
Reel/Frame 034924/0779 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2014
From: ROCKSTAR BIDCO, LP
To: ROCKSTAR CONSORTIUM US LP
Reel/Frame 032425/0867 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2011
From: NORTEL NETWORKS LIMITED
To: ROCKSTAR BIDCO, LP
Reel/Frame 027164/0356 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2003
From: BOON, GARY KENNETH; DYSART, KEITH; WAINES, GREG; DAPOZ, MARK; TREMBLAY, FRANCE
To: NORTEL NETWORKS LIMITED
Reel/Frame 014750/0659 →