Patent ID: 7707578

Claim:
A method for controlling execution of a plurality of threads by a processing system that has at least two processors in at least one functional processor group, in which threads coscheduled for execution on the processors share an internal processor group resource, the method comprising: when at least a first and a second thread are coscheduled for execution on the processors of the functional processor group, sensing during run time the presence of a rescheduling condition indicating that either the first thread or the second thread is exhibiting anti-cooperative execution behavior towards the other coscheduled thread, wherein anti-cooperative execution behavior comprises any behavior that reduces or interferes with the ability of another coscheduled thread to use the shared internal processor group resource at a predetermined level; inputting at least one user-specified thread performance requirement; estimating run-time thread execution performance relative to the performance requirement as a function of an observable condition, in which the anti-cooperative execution behavior is violation of the user-specified thread performance requirement; and upon sensing the rescheduling condition, rescheduling at least one of the threads such that the first and second threads no longer execute in the same functional processor group at the same time.