Patent ID: 6665699
Filing Date: 2003-12-16
Classification: G06F

Abstract:
A method of dispatching a dispatch unit of work ready for execution in an operating system supporting a plurality of processors, wherein:a dispatcher in the operating system utilizes a set of queues for dispatching units of work queued for execution by the plurality of processors, with each queue of the set of queues having a plurality of chains of dispatch units of work, each dispatch unit of work being scheduled for execution when queued on one of the plurality of chains according to which component was utilized to execute the dispatch unit of work; and a selected queue is one of the set of queues; said dispatching method comprising: A) selecting a first chain from the plurality of chains in the selected queue as a primary chain, wherein: the selecting of the first chain utilizes an identification of a component in a data processing system that will be utilized to execute a queued dispatch unit of work when dispatched; B) testing the primary chain in the selected queue for the dispatch unit of work to dispatch; C) selecting that dispatch unit of work from the primary chain in the selected queue as a next unit of work to dispatch if the primary chain in the selected queue contains a dispatch unit of work to dispatch; D) selecting a second chain from the plurality of chains in the selected queue as a secondary chain if the next unit of work has not been selected, wherein: the selecting of the second chain utilizes the identification of the component in the data processing system that will be utilized to execute the queued dispatch unit of work when dispatched; E) testing the secondary chain in the selected queue for the dispatch unit of work to dispatch if the next unit of work has not been selected; F) selecting that dispatch unit of work from the secondary chain in the selected queue as the next unit of work to dispatch if the secondary chain in the selected queue contains the dispatch unit of work to dispatch; and G) dispatching the next unit of work to dispatch.