Patent ID: 6401110
Filing Date: 2002-06-04
Classification: G06F

Abstract:
A method for managing access to a shared resource in a computing system, including multiple processors each coupled to the shared resource, the processors being coupled to one or more hosts, the method comprising operations of:each processor separately storing a corresponding lock table listing one or more subparts of the shared resource, where each lock table also lists in association with each subpart a state selected from a state group including a LOCAL state and a REMOTE state; in response to an access request from one of the hosts, the access request identifying one or more subparts of the shared resource, the processors awarding a lock on all identified subparts by electing a single processor to have exclusive access to the identified subparts; wherein the awarding of a lock for one or more subparts comprises the processors exchanging one or more messages from a group including lock request and lock grant, each lock request message including a newly generated token to distinguish the lock request from other lock requests, each lock grant message including a token from a lock request being granted thereby; wherein the exchanging of messages comprises each processor applying predetermined operations to cooperate with other processors in awarding locks, the predetermined operations comprising: responsive to a processor receiving a lock request message and associated token concerning a specified subpart of the shared resource when the receiving processor's lock table shows a REMOTE state associated with specified subpart, the receiving processor returning a lock grant message including a token from a lock grant message originally granting a lock on the specified subpart causing the shared resource to enter the REMOTE state; in response to the election, at a first time all non-lock-holding processors configuring their lock tables to show the identified subparts in the REMOTE state, and no earlier then the first time the lock-holding processor configuring its lock table to show the identified subpart in the LOCAL state; and each processor refraining from accessing a subpart of the shared resource unless the processor's lock table indicates a LOCAL state for that subpart.