Process scheduler employing ordering function to schedule threads running in multiple adaptive partitions
First Claim
1. A system comprising:
- a processor;
one or more memory storage units; and
software code stored in the one or more memory storage units,where the software code is executable by the processor to generate a plurality of adaptive partitions, where one or more process threads are associated with each adaptive partition and each process thread has a corresponding priority value within the associated adaptive partition, where each of the plurality of adaptive partitions has one or more corresponding scheduling attributes, where the one or more corresponding scheduling attributes of each of the plurality of adaptive partitions comprise a guaranteed budget corresponding to a guaranteed amount of processor allocation that may be used to run the one or more process threads associated with the adaptive partition, and where execution of each process thread of the one or more process threads of the associated adaptive partition is individually attributed and accounted against one or more of the scheduling attributes of the associated adaptive partition,where the software code further comprises a scheduling system executable by the processor for selectively allocating the processor to run the process threads of the plurality of adaptive partitions based on a comparison between ordering function values of the plurality of adaptive partitions, andwhere the ordering function value for each adaptive partition is calculated using variables respectively associated with each adaptive partition, where the variables comprise two or more variables comprising(a) whether the adaptive partition has available guaranteed budget,(b) whether the adaptive partition has available critical budget,(c) the corresponding priority value of the process thread associated with the adaptive partition having a highest corresponding priority value that is ready to run,(d) a relative fraction of the guaranteed budget used during an averaging window over which the guaranteed budget is assigned, and(e) a current rate of processor consumption by the adaptive partition,where the ordering function value generated for the adaptive partition is dependent on an amount of the available guaranteed budget of the adaptive partition.
13 Assignments
0 Petitions
Accused Products
Abstract
A system includes a processor, one or more memory storage units, and software code stored in the memory storage units. The software code is executable by the processor to generate a plurality of adaptive partitions that are each associated with one or more process threads. Each of adaptive partition has one or more corresponding assigned scheduling attributes. The software code includes a scheduling system for selectively allocating the processor to run process threads based on a comparison between ordering function values for each adaptive partition. Ordering function values are calculated based on scheduling attributes of the corresponding adaptive partition. A critical ordering function value also may be calculated and used to determine the proper manner of billing an associated adaptive partition for the processor allocation used to run its associated critical threads. Methods of implementing various aspects of such a system are also set forth.
95 Citations
23 Claims
-
1. A system comprising:
-
a processor; one or more memory storage units; and software code stored in the one or more memory storage units, where the software code is executable by the processor to generate a plurality of adaptive partitions, where one or more process threads are associated with each adaptive partition and each process thread has a corresponding priority value within the associated adaptive partition, where each of the plurality of adaptive partitions has one or more corresponding scheduling attributes, where the one or more corresponding scheduling attributes of each of the plurality of adaptive partitions comprise a guaranteed budget corresponding to a guaranteed amount of processor allocation that may be used to run the one or more process threads associated with the adaptive partition, and where execution of each process thread of the one or more process threads of the associated adaptive partition is individually attributed and accounted against one or more of the scheduling attributes of the associated adaptive partition, where the software code further comprises a scheduling system executable by the processor for selectively allocating the processor to run the process threads of the plurality of adaptive partitions based on a comparison between ordering function values of the plurality of adaptive partitions, and where the ordering function value for each adaptive partition is calculated using variables respectively associated with each adaptive partition, where the variables comprise two or more variables comprising (a) whether the adaptive partition has available guaranteed budget, (b) whether the adaptive partition has available critical budget, (c) the corresponding priority value of the process thread associated with the adaptive partition having a highest corresponding priority value that is ready to run, (d) a relative fraction of the guaranteed budget used during an averaging window over which the guaranteed budget is assigned, and (e) a current rate of processor consumption by the adaptive partition, where the ordering function value generated for the adaptive partition is dependent on an amount of the available guaranteed budget of the adaptive partition. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of operating a processing system to execute scheduling system software stored in a memory of the processing system, where the processing system includes a processor that executes the scheduling system software stored in the memory where the processor executes the scheduling system software stored in memory to perform operations comprising:
-
generating a plurality of adaptive partitions; associating one or more process threads with each adaptive partition, where each of the one or more process threads has a corresponding priority value within the adaptive partition; executing the process scheduler software to assign scheduling attributes to each adaptive partition, where the scheduling attributes of each adaptive partition comprise a guaranteed budget corresponding to a guaranteed amount of processor allocation that may be used to run the one or more process threads associated with the adaptive partition, and where execution of each process thread of the one or more process threads of the adaptive partition is individually attributed to and accounted against one or more of the scheduling attributes of the adaptive partition; generating an ordering function value for each adaptive partition based on the scheduling attributes of the adaptive partition, where the ordering function value for each adaptive partition is determined using variables respectively associated with each adaptive partition, where the variables include two or more variables comprising (a) whether the adaptive partition has available guaranteed budget, (b) whether the adaptive partition has available critical budget, (c) the corresponding priority value of the process thread associated with the adaptive partition having a highest corresponding priority value that is ready to run, (d) a relative fraction of the guaranteed budget used during an averaging window over which the guaranteed budget is assigned, and (e) a current rate of processor consumption by the adaptive partition; and selectively allocating the processor to run the process threads of the plurality of adaptive partitions based on a comparison between the ordering function values of the plurality of adaptive partitions, where the ordering function value generated for the adaptive partition is dependent on an amount of the available guaranteed budget of the adaptive partition. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. One or more memory storage units comprising:
-
software code executable by a processor to generate a plurality of adaptive partitions, where one or more process threads are associated with each adaptive partition and each process thread has a corresponding priority value within the associated adaptive partition, where each of the plurality of adaptive partitions has one or more corresponding scheduling attributes, where the one or more corresponding scheduling attributes of each the plurality of adaptive partitions comprise a guaranteed budget corresponding to a guaranteed amount of processor allocation that may be used to run the one or more process threads associated with the adaptive partition, and where execution of each process thread of the one or more process threads of each adaptive partition is individually attributed and accounted against one or more of the scheduling attributes of the associated adaptive partition; and a scheduling system in the software code, where the scheduling system is executable by the processor for selectively allocating the processor to run the process threads based on a comparison between ordering function values calculated for the plurality of adaptive partition, and where the ordering function value for each adaptive partition is calculated using variables respectively associated with each adaptive partition, where the variables include two or more variables comprising (a) whether the adaptive partition has available guaranteed budget, (b) whether the adaptive partition has available critical budget, the corresponding priority value of the process thread associated with the adaptive partition having a highest corresponding priority value that is ready to run, (c) a relative fraction of the guaranteed budget used during an averaging window over which the guaranteed budget is assigned, and (d) a current rate of processor consumption by the adaptive partition, where the ordering function value generated for the adaptive partition is dependent on an amount of the available guaranteed budget of the adaptive partition. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23)
-
Specification