Controlling allocation of system resources with an enhanced priority calculation
First Claim
Patent Images
1. A method for controlling the allocation of a data processing system'"'"'s resources among two or more components competing for said resources, said method comprising the steps of:
- adjusting a system value that is utilized as an offset for calculating a priority of said components when scheduling access to a specific system resource to yield a modified system value, wherein said modified system value accentuates the effect of said system value so that a resulting priority penalty is greater as the system value increases and said priority penalty is smaller as said system value decreases;
calculating the priority of said components utilizing said modified system value within a priority calculation, wherein said calculated priority is utilized to schedule access of said components to said specific system resource and is different from a priority calculated with said system value; and
scheduling said components according to said priority calculated utilizing said modified system value.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for controlling the allocation of a data processing system'"'"'s resources among two or more components competing for the resources. An internal system value is modified to yield a modified system value. A utilization history is created by mapping a component'"'"'s utilization of the system resources. Then, the priority of the component is calculated utilizing the utilization history and the modified system value within a priority calculation.
-
Citations
24 Claims
-
1. A method for controlling the allocation of a data processing system'"'"'s resources among two or more components competing for said resources, said method comprising the steps of:
-
adjusting a system value that is utilized as an offset for calculating a priority of said components when scheduling access to a specific system resource to yield a modified system value, wherein said modified system value accentuates the effect of said system value so that a resulting priority penalty is greater as the system value increases and said priority penalty is smaller as said system value decreases;
calculating the priority of said components utilizing said modified system value within a priority calculation, wherein said calculated priority is utilized to schedule access of said components to said specific system resource and is different from a priority calculated with said system value; and
scheduling said components according to said priority calculated utilizing said modified system value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
tracking a thread'"'"'s utilization of said resources to create a utilization history utilized to determine a correlated utilization value; and
calculating said priority of said thread utilizing said utilization value and said modified system value.
-
-
4. The method of claim 3, wherein said tracking step includes the step of monitoring a time period when said thread utilizes resources of a CPU of said data processing system.
-
5. The method of claim 3, wherein said data processing system contains a UNIX operating system and said system value is a NICE value, wherein further:
-
said tracking step includes the steps of monitoring said utilization value for a plurality of said threads; and
said calculating step includes the steps of;
assigning specific priorities to each of said plurality of said threads based on said utilization value and said modified system value; and
comparing said specific priorities of each of said plurality of threads to determine an effective priority of each of said threads.
-
-
6. The method of claim 5, wherein said calculating step yields a different priority based on said modified system value, wherein said calculating step further includes the step of changing a priority penalty for a unit of CPU time that a thread consumes, so that said penalty is greater as a NICE effect is increased and said penalty is smaller as said NICE effect is decreased, said priority penalty corresponding to said NICE value.
-
7. The method of claim 6, wherein said changing step includes the step of calculating said priority utilizing said modified system value within a priority equation, wherein said modified system value is dependent on a plurality of factors including:
-
level of priority desired for each of said plurality of threads;
length of time for sustaining a higher or lower priority once assigned;
utilization history of a particular thread; and
data processing system'"'"'s ability to efficiently handle multiple threads.
-
-
8. The method of claim 7, wherein when a thread is desired to be of low priority, said calculating step includes the step of increasing said NICE value to yield said modified system value.
-
9. The method of claim 8, wherein said increasing step includes the step of multiplying said NICE value by a factor greater than 1.
-
10. A system for controlling the allocation of a data processing system'"'"'s resources among two or more components competing for said resources, said system comprising:
-
means for adjusting a system value that is utilized as an offset for calculating a priority of said components when scheduling access to a specific system resource to yield a modified system value, wherein said modified system value accentuates the effect of said system value so that a resulting priority penalty is greater as the system value increases and said priority penalty is smaller as said system value decreases;
means for calculating the priority of said components utilizing said modified system value within a priority calculation, wherein said calculated priority is utilized to schedule access of said components to said specific system resource and is different from a priority calculated with said system value; and
means for scheduling said components according to said priority calculated utilizing said modified system value. - View Dependent Claims (11, 12, 13, 14, 15, 16)
means for tracking a thread'"'"'s utilization of said resources to create a utilization history utilized to determine a correlated utilization value; and
means for calculating a priority of said thread utilizing said utilization value and said modified system value.
-
-
13. The system of claim 12, wherein said data processing system contains a UNIX operating system and said system value is a NICE value wherein further:
-
said tracking means includes means for monitoring said utilization value for a plurality of said threads; and
said calculating means includes means for;
assigning specific priorities to each of said plurality of said threads based on said utilization value and said modified NICE value; and
comparing said specific priorities of each of said plurality of threads to determine an effective priority of each of said threads.
-
-
14. The system of claim 13, wherein said calculating means yields a different priority based on said modified system value, wherein said calculating step further includes means for changing a priority penalty for a unit of CPU time that a thread consumes, so that said penalty is greater as a NICE effect is increased and said penalty is smaller as said NICE effect is decreased.
-
15. The system of claim 14, wherein said changing means includes means for calculating said priority utilizing said modified system value within a priority equation, wherein said modified system value is dependent on a plurality of factors including:
-
level of priority desired for each of said plurality of threads;
utilization history of a particular thread; and
the data processing system'"'"'s ability to efficiently handle multiple threads.
-
-
16. The system of claim 15, wherein when a thread is desired to be of low priority, said calculating means further includes means for multiplying said NICE value by a factor greater than 1 to yield said modified system value.
-
17. A computer program product for controlling the allocation of a data processing system'"'"'s resources among two or more components competing for said resources, said program product comprising:
-
a computer readable medium; and
program instructions on said computer readable medium for;
adjusting a system value that is utilized as an offset for calculating a priority of said components when scheduling access to a specific system resource to yield a modified system value, wherein said modified system value accentuates the effect of said system value so that a resulting priority penalty is greater as the system value increases and said priority penalty is smaller as said system value decreases;
calculating the priority of said components utilizing said modified system value within a priority calculation, wherein said calculated priority is utilized to schedule access of said components to said specific system resource and is different from a priority calculated with said system value; and
scheduling said components according to said priority calculated utilizing said modified system value. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
tracking a thread'"'"'s utilization of said resources to create a utilization history utilized to determine a correlated utilization value; and
calculating a priority of said thread utilizing said utilization value and a modified system value.
-
-
20. The computer program product of claim 19, wherein said program instructions for said creating step includes program instructions for monitoring a time period when said thread utilizes resources of a CPU of said data processing system.
-
21. The computer program product of claim 19, wherein said program instructions are run on a data processing system containing a UNIX operating system and said system value is a NICE value, wherein further:
-
said program instructions for said tracking step includes program instructions for monitoring said utilization value for a plurality of said threads; and
said program instructions for said calculating step includes program instructions for;
assigning specific priorities to each of said plurality of said threads based on said utilization value and said modified NICE value; and
comparing said specific priorities of each of said plurality of threads to determine an effective priority of each of said threads.
-
-
22. The computer program product of claim 21, wherein said program instructions for said calculating step further includes program instructions for changing a priority penalty for a unit of CPU time that a thread consumes, wherein said penalty is greater as a NICE effect is increased and said penalty is smaller as said NICE effect is decreased.
-
23. The computer program product of claim 22, wherein said program instructions for said changing step includes program instructions for calculating said priority utilizing said NICE value within a priority equation, wherein said modified system value is dependent on a plurality of factors including:
-
level of priority desired for each of said plurality of threads;
utilization history of a particular thread; and
the data processing system'"'"'s ability to efficiently handle multiple threads.
-
-
24. The computer program product of claim 23, wherein when a thread is desired to be of low priority, said program instructions for said calculating step further includes program instructions for multiplying said NICE value by a factor greater than 1 to yield said modified system value.
Specification