Coupled lock allocation and lookup for shared data synchronization in symmetric multithreading environments
First Claim
Patent Images
1. A method of using locks in a multithreaded computing system having at least two processors and a shared memory process configuration, comprising:
- for each instance of shared data in at least a portion of a shared memory, allocating a lock in the shared memory;
wherein each allocated lock has a corresponding lock location, and wherein the lock location is based on an offset for the lock relative to a memory location of the instance of shared data protected by the lock.
2 Assignments
0 Petitions
Accused Products
Abstract
In a shared memory process different threads may attempt to access a shared data variable in a shared memory. Locks are provided to synchronize access to shared data variables. Each lock is allocated to have a location in the shared memory relative to the instance of shared data that the lock protects. A lock may be allocated to be adjacent to the data that it protects. Lock resolution is facilitated because the memory location of a lock can be determined from an offset with respect to the data variable that is being protected by the lock.
1 Citation
20 Claims
-
1. A method of using locks in a multithreaded computing system having at least two processors and a shared memory process configuration, comprising:
-
for each instance of shared data in at least a portion of a shared memory, allocating a lock in the shared memory; wherein each allocated lock has a corresponding lock location, and wherein the lock location is based on an offset for the lock relative to a memory location of the instance of shared data protected by the lock. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A multithreaded computing system comprising:
-
at least two processors in a shared memory process configuration in which threads of the at least two processors access a shared memory, wherein accesses to shared data in the shared memory are synchronized, via lock allocation, for individual instances of shared data; wherein each allocated lock has a corresponding lock location, and wherein the lock location is based on an offset for the lock relative to a memory location of the instance of shared data protected by the lock. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A method of resolving locks in a multithreaded computing system having at least two processors and a shared memory process configuration, comprising:
for each access to an instance of shared data in at least a portion of a shared memory, determining a memory location of a lock based on an offset for the lock relative to a memory location of the instance of shared data protected by the lock. - View Dependent Claims (15, 16)
-
17. A multithreaded computing system comprising:
at least two processors in a shared memory process configuration in which threads of the at least two processors access a shared memory, wherein lock resolution for a lock protecting an instance of shared data in the shared memory is determined based on an offset for the lock relative to a memory location of the instance of shared data. - View Dependent Claims (18, 19)
-
20. A non-transitory computer readable storage medium comprising computer readable instruction which when executed by a processor implement a method comprising:
for each access to an instance of shared data in at least a portion of a shared memory, determining a memory location of a lock based on an offset for the lock relative to a memory location of the instance of shared data protected by the lock.
Specification