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 that are each associated with one or more process threads, and where each of the plurality of adaptive partitions has one or more corresponding scheduling attributes, where the software code further comprises a scheduling system executable by the processor for selectively allocating the processor to run the process threads based on a comparison between ordering function values for each adaptive partition, and where the ordering function value for each adaptive partition is calculated using one or more of the scheduling attributes of the corresponding adaptive partition.
13 Assignments
0 Petitions
Accused Products
Abstract
A system is set forth that includes a processor, one or more memory storage units, and software code stored in the one or more 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 the plurality of adaptive partitions has one or more corresponding scheduling attributes that are assigned to it. The software code further includes a scheduling system that is executable by the processor for selectively allocating the processor to run the process threads based on a comparison between ordering function values for each adaptive partition. The ordering function value for each adaptive partition is calculated using one or more of the scheduling attributes of the corresponding adaptive partition. The scheduling attributes that may be used to calculate the ordering function value include, for example, 1) the process budget, such as a guaranteed time budget, of the adaptive partition, 2) the critical budget, if any, of the adaptive partition, 3) the rate at which the process threads of an adaptive partition consume processor time, or the like. For each adaptive partition that is associated with a critical thread, a critical ordering function value also may be calculated. The scheduling system may compare the ordering function value with the critical ordering function value of the adaptive partition to determine the proper manner of billing the 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.
-
Citations
33 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 that are each associated with one or more process threads, and where each of the plurality of adaptive partitions has one or more corresponding scheduling attributes, where the software code further comprises a scheduling system executable by the processor for selectively allocating the processor to run the process threads based on a comparison between ordering function values for each adaptive partition, and where the ordering function value for each adaptive partition is calculated using one or more of the scheduling attributes of the corresponding adaptive partition. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of operating a process scheduler in a processing system having a processor and a plurality of adaptive partitions that are each associated with one or more process threads, each of the adaptive partitions having one or more scheduling attributes, the method comprising:
-
generating an ordering function value for each adaptive partition based on the scheduling attributes of 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. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. One or more memory storage units comprising:
-
software code executable by a processor to generate a plurality of adaptive partitions that are each associated with one or more process threads, where each of the plurality of adaptive partitions has a corresponding processor budget, and where each of the plurality of adaptive partitions has one or more corresponding scheduling attributes; 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 each adaptive partition, and where the ordering function value for each adaptive partition is calculated using one or more of the scheduling attributes of the corresponding adaptive partition. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A method of operating a process scheduler in a processing system having a processor and a plurality of adaptive partitions that are each associated with one or more process threads, where each of the adaptive partitions has one or more scheduling attributes, the method comprising:
-
assigning a processor budget to each of the adaptive partitions as one of the scheduling attributes;
assigning a critical budget to each adaptive partition associated with a critical thread as a further one of the scheduling attributes;
generating an ordering function value for each adaptive partition based on one or more of the scheduling attributes of the adaptive partition;
selectively allocating the processor to run the process threads associated with the plurality of adaptive partitions based on a comparison between the ordering function values of the plurality of adaptive partitions;
generating a critical ordering function value for each adaptive partition associated with a critical thread, where the critical ordering function value is dependent on the processor budget for the adaptive partition;
billing the processor budget of an adaptive partition for processor allocation used to run the process threads associated with the adaptive partition; and
billing the critical budget of an adaptive partition for processor allocation used to run critical threads associated with an adaptive partition, where billing of the critical budget is based on a comparison between the ordering function value and the critical ordering function value of the adaptive partition. - View Dependent Claims (30, 31, 32, 33)
-
Specification