Method and apparatus for locking by sharing lock states. Each resource is
associated with a lock state that represents its lock. Lock states are
made of one set of transactions per locking mode. Resources may share the
same lock state if the state of their respective locks is equal. Locking
operations change the association between a resource and a lock state to
reflect changes to the resource's lock. In one embodiment, a table of
immutable lock states (TILS) record the immutable lock states that were
created by lock operations in order to avoid duplication of lock states
with equal value. Locking operations (acquire and release) on a resource R
by a transaction T compute a new lock state value by adding (acquire) or
removing (release) T from the lock state associated with R, consult the
TILS to retrieve an immutable lock state corresponding to the computed
value (and registers one if none was found), and change R's association to
refer to the lock state returned by the TILS. In one embodiment, lock
state computations are cached to avoid both computation of lock states and
look up to the TILS. Each transaction maintains one lock state computation
cache per locking operation. Transactions keep track of resources they
obtain a lock for using a lock set (which may be implemented as a stack).
Alternatively, lock sets may be avoided if the TILS is scanned upon
transaction completion to determine the lock states that contained the
transaction in one of their sets.
Methode und Apparat für die Blockierung durch das Teilen der Verriegelung Zustände. Jedes Hilfsmittel ist mit einem Verriegelung Zustand, der seine Verriegelung darstellt. Verriegelung Zustände werden von einem Satz Verhandlungen pro verriegelnmodus gebildet. Betriebsmittel können den gleichen Verriegelung Zustand teilen, wenn der Zustand ihrer jeweiligen Verriegelungen gleich ist. Verriegelnd ändern Betriebe die Verbindung zwischen einem Hilfsmittel und einem Verriegelung Zustand, um Änderungen an der Verriegelung des Hilfsmittels zu reflektieren. In einer Verkörperung notieren eine Tabelle der unabänderlichen Verriegelung Zustände (TILS) die unabänderlichen Verriegelung Zustände, die durch Verriegelung Betriebe verursacht wurden, um Verdopplung der Verriegelung Zustände mit gleichem Wert zu vermeiden. Betriebe (erwerben Sie und Freigabe), auf einem Hilfsmittel R durch rechnen der Verhandlung T verriegelnd, verband ein neuer Verriegelung Zustandwert, indem er addierte (erwerben Sie) oder (Freigabe) T vom Verriegelung Zustand entfernte, mit R, berät das TILS, um einen unabänderlichen Verriegelung Zustand zurückzuholen, der dem Berechnungs- Wert entspricht (und Registern eins, wenn keines gefunden wurde) und ändert Verbindung r, um sich auf den Verriegelung Zustand zu beziehen, der durch das TILS zurückgebracht wurde. In einer Verkörperung wird Verriegelung Zustandberechnung cachiert, um Berechnung der Verriegelung Zustände zu vermeiden und bis zum TILS zu schauen. Jede Verhandlung behält einen Verriegelung Zustand-Berechnung Pufferspeicher pro verriegelnbetrieb bei. Verhandlungunterhaltschiene der Betriebsmittel erhalten sie eine Verriegelung für das Verwenden eines Verriegelung Satzes (der als Stapel eingeführt werden kann). Wechselweise können Verriegelung Sätze vermieden werden, wenn das TILS nach Verhandlungbeendigung abgelichtet wird, um die Verriegelung festzustellen angibt, daß enthalten der Verhandlung in einem ihrer Sätze.