Patent ID: 7080376
Filing Date: 2006-07-18
Classification: G06F

Abstract:
1. A method comprising: a. initializing shared variables, the shared variables including a turn variable, a first status flag, and a second status flag; b. reading the shared variables into a memory; c. entering a processing queue; d. determining if a yield count has expired, wherein the yielding count is the amount of time a first thread is to remain in the processing queue; e. if the yield count has expired, then exiting the processing queue and the first thread relinquishes its remaining quantum time to another thread in the processing queue; f. if the yield count has not expired, then for a contending process, determining if a concurrent process exists; g. retrieving the second status flag and the turn variable from the memory, reading the second status flag into a first cache and reading the turn variable into a second cache to determine if the concurrent process is executing a critical section of code, wherein the second cache is larger than the first cache; h. if the concurrent process is not executing a critical section of code, then entering the critical section of code, and upon completing the critical section of code, resetting the first status flag, wherein resetting the first status flag comprises retrieving a reset value from a register; and i. if the concurrent process is executing the critical section of code, then repeating d through i.