Selective association of lock override procedures with queued multimodal lock
First Claim
Patent Images
1. A method for providing queued multimodal locking and unlocking services for managing a shared resource wherein the services include procedures for locking the shared resource in a selected one of at least two lock modes, said services further including at least two different lock override procedures, each of the lock override procedures being selectively associated with one of the lock modes.
10 Assignments
0 Petitions
Accused Products
Abstract
A queued, multimodal, fault-tolerant lock mechanism for managing shared resources in a data processing system is provided. Lock override procedures are selectively associated with certain lock modes.
97 Citations
14 Claims
- 1. A method for providing queued multimodal locking and unlocking services for managing a shared resource wherein the services include procedures for locking the shared resource in a selected one of at least two lock modes, said services further including at least two different lock override procedures, each of the lock override procedures being selectively associated with one of the lock modes.
-
4. A method for providing queued multimodal locking and unlocking services for managing a shared resource in a data processing system including a plurality of processors as lock requesters, each processor supporting atomic operations and being coupled to the shared resource through one or more first common communication channels, including the steps of:
-
providing, for each processor, a lock services procedure including at least two lock mode procedures, a lock mode selection procedure for selecting one from the lock modes by a successful lock requester, a queuing procedure for unsuccessful lock requesters, locking and unlocking procedures for locking and unlocking the shared resource in the selected lock mode by a successful lock requestor, and at least two lock override procedures, each lock override procedure being selectively associated with one of the lock modes;
providing, for the shared resource, an associated main lock data structure stored in a shared memory accessible by a plurality of processors, the main lock data structure including in a single atomic structure, the resources needed to lock the shared resource by a successful lock requester, to identify one of the lock modes, to establish a queue of unsuccessful lock requesters, and to validate the existence of the lock;
examining the contents of the main lock data structure by at least one processor other than the successful lock requestor to determine the lock mode identified by the successful lock requester;
detecting, by one of the lock determining processors, a requirement for initiating the lock override procedure associated with the determined lock mode; and
examining, in a single atomic operation by the detecting processor, the contents of the main lock data structure to confirm that a lock override is still required, and if the lock override is still required, writing data to the main lock data structure to reserve the lock to an alternate lock requestor and to revalidate the lock. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for providing queued multimodal locking and unlocking services comprising:
-
a shared resource;
a plurality of processors as lock requesters, each processor supporting atomic operations and being coupled to the shared resource through one or more first common communication channels;
a shared memory accessible over one or more second common communications channels to all of the processors;
a lock services procedure implemented in each of the processors, the lock services procedure including at least two lock mode procedures, a lock mode selection procedure for selecting one from the lock mode procedures by a successful lock requestor, a queuing procedure for unsuccessful lock requesters, and locking and unlocking procedures for locking and unlocking the shared resource in the selected lock mode by a successful lock requester, and further including at least two different lock override procedures, each of the lock override procedures being selectively associated with a lock mode; and
an atomic main lock data structure, responsive to the lock services procedures, implemented in the shared memory and associated with the shared resource, which includes the resources needed to lock a shared resource by a successful lock requestor, to identify one of the lock modes, to establish a place in a queue of unsuccessful lock requestors, and validate the existence of the lock;
each processor other than the successful lock requestor being operable in accordance with its lock services procedure to read the main lock data structure to determine the lock mode identified by the successful lock requester, to detect a requirement for initiating the lock override procedure in accordance with the determined lock mode, and, in a single atomic operation by the detecting processor, to examine the contents of the main lock data structure to confirm that a lock override is still required, and if the lock override is still required, to write data to the main lock data structure to reserve the lock to an alternate lock requester and to revalidate the lock.
-
Specification