Patent ID: 8321872

Claim:
A system comprising: a mutexes controller comprising a locked mutex cache to store a list of records each including a mutex ID tag and a waiter flag; a lock register and an unlock register that are each readable by said mutexes controller and loadable by software tasks with a mutex ID specifying, one of a plurality of hardware resources in a computer system, said computer system comprises an operating system; and said mutexes controller operable to: monitor whether said lock register has been loaded with a mutex ID and then: determine whether said mutex ID corresponds with a mutex ID tag of a record in said locked mutex cache; and if so, to set said waiter flag of said record; or if not, to add a record to said locked mutex cache having said mutex ID tag that corresponds with said mutex ID; and monitor whether said unlock register has been loaded with a mutex ID and then: determine whether said mutex ID corresponds with a mutex ID tag of a record in said locked mutex cache; and if so, determine whether said waiter flag of said record is not set and, if so, to clear said record from said locked mutex cache; wherein an operating system scheduler is operable to locate highest priority software task in a runnable state after said add; said computer system operable to then execute the highest priority software task; and said system is operable to handle nested mutexes with hardware performing un-nested operations and said operating system performing nested operations.