DocumentCode
596080
Title
Automatic lock insertion in concurrent programs
Author
Kahlon, V.
Author_Institution
NEC Labs., Princeton, NJ, USA
fYear
2012
fDate
22-25 Oct. 2012
Firstpage
16
Lastpage
23
Abstract
Triggering errors in concurrent programs is a notoriously difficult task. A key reason for this is the behavioral complexity resulting from the large number of interleavings of operations of different threads. An even more challenging task is fixing errors once they are detected. In general, automatically synthesizing a correct program from a buggy one is a hard problem. However for simple correctness properties that depend on the syntactic structure of the program rather than its semantics, automatic error correction becomes feasible. In this paper, we consider the problem of lock insertion to enforce critical sections required to fix bugs like atomicity violations. A key challenge in lock insertion is that enforcing critical sections is not the sole criterion that needs to be satisfied. Often other correctness constraints like deadlock-freedom also need to be met. Moreover, apart from ensuring correctness, another key concern during lock insertion is performance. Indeed, mutual exclusion constraints generated by locks kill parallelism thereby impacting performance. Thus it is crucial that the newly introduced critical sections be kept as small as possible. In other words, our goal is lock insertion while meeting the dual, and often conflicting, requirements of (i) correctness and (ii) performance. In this paper, we present a fully automatic, provable optimal, efficient and precise technique for lock insertion in concurrent code that ensures deadlock freedom while attempting to minimize the resulting critical sections.
Keywords
concurrency control; parallel programming; program debugging; system recovery; atomicity violations; automatic error correction; automatic lock insertion; behavioral complexity; bugs; concurrent code; concurrent programs; correctness constraints; deadlock freedom; deadlock-freedom constraints; mutual exclusion constraints; syntactic structure; Complexity theory; Computer bugs; Design automation; Instruction sets; Scalability; Semantics; System recovery;
fLanguage
English
Publisher
ieee
Conference_Titel
Formal Methods in Computer-Aided Design (FMCAD), 2012
Conference_Location
Cambridge
Print_ISBN
978-1-4673-4832-4
Type
conf
Filename
6462551
Link To Document