Method and apparatus to perform task scheduling
First Claim
Patent Images
1. A method to assign tasks, comprising:
- receiving a request to execute a task on one of a plurality of processors;
determining a task type for said task;
retrieving a processor task value of said task type for each processor, said processor task value representing a number of other task types affected by assigning said task to a processor;
selecting a processor from said plurality of processors based on said processor task values; and
assigning said task to said selected processor; and
updating said processor task values for each task type and each processor, wherein said updating comprises;
retrieving a first resource cost value for a first task type;
retrieving a second resource cost value for a second task type;
generating a modulo of said first resource cost value divided by said second resource cost value to form a first relative resource value for said first task type relative to said second task type;
determining a remaining resource value for said processor;
generating a modulo of said remaining resource value divided by said second resource cost value to form a second spare resource value for said second task type;
comparing said first relative resource value to said second spare resource value; and
updating said processor task value for said first task type in accordance with said comparison.
10 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus to perform task scheduling are described. Tasks are assigned by receiving a request to execute a task on one of multiprocessors. The type of task is determined for the task. A processor task value is used to select the proper processor and the task is assigned.
22 Citations
9 Claims
-
1. A method to assign tasks, comprising:
-
receiving a request to execute a task on one of a plurality of processors; determining a task type for said task; retrieving a processor task value of said task type for each processor, said processor task value representing a number of other task types affected by assigning said task to a processor; selecting a processor from said plurality of processors based on said processor task values; and assigning said task to said selected processor; and updating said processor task values for each task type and each processor, wherein said updating comprises; retrieving a first resource cost value for a first task type; retrieving a second resource cost value for a second task type; generating a modulo of said first resource cost value divided by said second resource cost value to form a first relative resource value for said first task type relative to said second task type; determining a remaining resource value for said processor; generating a modulo of said remaining resource value divided by said second resource cost value to form a second spare resource value for said second task type; comparing said first relative resource value to said second spare resource value; and updating said processor task value for said first task type in accordance with said comparison. - View Dependent Claims (2, 3, 4)
-
-
5. A method to assign tasks, comprising:
-
receiving a request to execute a task on one of a plurality of processors; determining a task type for said task; retrieving a processor task value of said task type for each processor, said processor task value representing a number of other task types affected by assigning said task to a processor; selecting a processor from said plurality of processors based on said processor task values; and assigning said task to said selected processor; and updating said processor task values for each task type and each processor, wherein said updating comprises; retrieving a first resource cost value for a first task type; retrieving a second resource cost value for a second task type; generating a modulo of said second resource cost value divided by said first resource cost value to form a second relative resource value for said second task type relative to said first task type; determining a remaining resource value for said processor; generating a modulo of said remaining resource value divided by said first resource cost value to form a first spare resource value for said first task type; comparing said second relative resource value to said first spare resource value; and updating said processor task value for said second task type in accordance with said comparison. - View Dependent Claims (6)
-
-
7. An article, comprising:
-
a storage medium; said storage medium including stored instructions that, when executed by a processor, result in assigning tasks by receiving a request to execute a task on one of a plurality of processors, determining a task type for said task, retrieving a processor task value of said task type for each processor, selecting a processor from said plurality of processors based on said processor task values, assigning said task to said selected processor, said processor task value representing a number of other task types affected by assigning said task to said processor and updating said processor task values for each task type and each processor, wherein the stored instructions, when executed by a processor, further result in said updating by retrieving a first resource cost value for a first task type, retrieving a second resource cost value for a second task type, generating a modulo of said first resource cost value divided by said second resource cost value to form a first relative resource value for said first task type relative to said second task type, determining a remaining resource value for said processor, generating a modulo of said remaining resource value divided by said second resource cost value to form a second spare resource value for said second task type, comparing said first relative resource value to said second spare resource value, and updating said processor task value for said first task type in accordance with said comparison. - View Dependent Claims (8, 9)
-
Specification