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.

 
Web www.patentalert.com

< (none)

< System and method for statically detecting potential race conditions in multi-threaded computer programs

> Method and apparatus for network transport independence

> (none)

~ 00025