Implementing Atomic Sections Using Lock Inference (2007)
| Citations: | 2 - 1 self |
BibTeX
@MISC{Gudka07implementingatomic,
author = {Khilan Gudka},
title = {Implementing Atomic Sections Using Lock Inference },
year = {2007}
}
OpenURL
Abstract
Atomicity is an important property for concurrent software, as it provides a stronger guarantee against errors caused by unanticipated thread interactions than race-freedom does. However, concurrency control in general is tricky to get right because current techniques are too low-level and error-prone. Consequently, a new software abstraction is gaining popularity to take care of concurrency control and the enforcing of atomicity properties, called atomic sections. We propose an implementation of atomic sections using lock inference, a technique that infers the locks required for atomicity and inserts them transparently into the user’s program. The main advantages of our approach are (1) we infer path expressions for objects accessed inside the atomic section that resolve at run-time to the actual objects being accessed, (2) we use multi-granularity locking for when a finite number of fine grained locks cannot be inferred and per-object locks otherwise and (3) we ensure freedom from deadlock without requiring the need to coarsen the locking granularity at compile-time. Finally, we evaluate our approach by implementing a portion of the STMBench7 benchmark in a prototype object-oriented language called Single-step. We show that on some operations, our implementation can perform better than coarse locking.







