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
OG exemplary drawing
 
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.