Patent ID: 6633897
Filing Date: 2003-10-14
Classification: G06F

Abstract:
A method with a multiprocessor data processing system including a plurality of processors, and a single execution queue of multiple threads from which threads are dispatched for execution by any said plurality of processors in a priority order, for establishing said priority order, said method comprising:(a) determining whether a current executing thread may still be run on a selected one of said plurality of processors; (b) in response to said current executing thread being runnable, placing said current executing thread on said single execution queue; (c) in response to an availability of said selected one of said plurality of processors selecting a thread having the highest priority on said single execution queue; (d) determining whether said current executing thread has the same priority as said thread having highest priority selected from said single execution queue; (e) upon determining said current executing thread and said highest priority thread are equal, running said current executing thread; (f) otherwise, if said highest priority thread is greater in priority than said current executing thread, determining whether a thread having affinity has the same priority as said highest priority thread, if said highest priority thread; and (g) running said affinity thread if equal to said thread having highest priority.