US 7,370,326 B2 | ||
Prerequisite-based scheduler | ||
Marc Timothy Jones, Costa Mesa, Calif. (US); Curtis Edward Nottberg, Costa Mesa, Calif. (US); and Samuel Burk Siewert, Costa Mesa, Calif. (US) | ||
Assigned to Emulex Design & Manufacturing Corporation, Costa Mesa, Calif. (US) | ||
Filed on Apr. 02, 2004, as Appl. No. 10/817,290. | ||
Prior Publication US 2005/0240924 A1, Oct. 27, 2005 | ||
Int. Cl. G06F 9/46 (2006.01); G06F 15/173 (2006.01) |
U.S. Cl. 718—102 [718/104; 709/238] | 40 Claims |
1. A method for scheduling a plurality of tasks in a processing system having a plurality of defined resources, comprising:
identifying prerequisites for each task, the prerequisites representing all defined resources needed for that task to execute
to completion;
identifying one or more higher priority task paths and one or more lower priority task paths, each of the paths having a plurality
of tasks in series;
representing each defined resource by one or more resource flags that provide information about that resource;
storing the prerequisites for each task as a collection of resource flags known as a prerequisite row;
storing the system state as a collection of resource flags;
creating a prerequisite table, the prerequisite table having one prerequisite row for each instantiated task arranged in descending
order according to a task priority order determined in accordance with the higher priority task paths and the lower priority
task paths, and having one column for each resource flag;
in a descending row order, performing a comparison of the prerequisite row for the task in a given row against a system state
representing a current state of the defined resources until a task is identified for which the comparison reveals that the
prerequisites for the identified task are currently available; and
dispatching the identified task.
|