Patent ID: 8544014

Claim:
A method to be executed at least in part in a computing device for scheduling threads in a multi-core processor system, the method comprising: receiving a thread to be scheduled for processing by the multi-core processor system; determining whether the received thread has a fixed affinity for a particular core of the multi-core processor system; assigning a sequence number to the received thread based on time of arrival of the thread when the thread is determined to not have a fixed affinity for the particular core and assigning a sequence number to the received thread based on time of arrival plus an offset when the thread is determined to have a fixed affinity; placing the thread in a per-processor queue for the particular core when the thread is determined to have a fixed affinity for the particular core; placing the thread in a global run queue for all available cores of the multi-core processor system when the thread is determined to not have a fixed affinity for the particular core; and processing the threads from the global run queue and the per-processor queue according to the assigned sequence number.