ACM Home Page
Please provide us with feedback. Feedback
Model checking transactional memories
Full text PdfPdf (310 KB)
Source
Conference on Programming Language Design and Implementation archive
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation table of contents
Tucson, AZ, USA
SESSION: Session XI table of contents
Pages 372-382  
Year of Publication: 2008
ISBN:978-1-59593-860-2
Also published in ...
Authors
Rachid Guerraoui  EPFL, Lausanne, Switzerland
Thomas A. Henzinger  EPFL, Lausanne, Switzerland
Barbara Jobstmann  EPFL, Lausanne, Switzerland
Vasu Singh  EPFL, Lausanne, Switzerland
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 159,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1375581.1375626
What is a DOI?

ABSTRACT

Model checking software transactional memories (STMs) is difficult because of the unbounded number, length, and delay of concurrent transactions and the unbounded size of the memory. We show that, under certain conditions, the verification problem can be reduced to a finite-state problem, and we illustrate the use of the method by proving the correctness of several STMs, including two-phase locking, DSTM, TL2, and optimistic concurrency control. The safety properties we consider include strict serializability and opacity; the liveness properties include obstruction freedom, livelock freedom, and wait freedom.

Our main contribution lies in the structure of the proofs, which are largely automated and not restricted to the STMs mentioned above. In a first step we show that every STM that enjoys certain structural properties either violates a safety or liveness requirement on some program with two threads and two shared variables, or satisfies the requirement on all programs. In the second step we use a model checker to prove the requirement for the STM applied to a most general program with two threads and two variables. In the safety case, the model checker constructs a simulation relation between two carefully constructed finite-state transition systems, one representing the given STM applied to a most general program, and the other representing a most liberal safe STM applied to the same program. In the liveness case, the model checker analyzes fairness conditions on the given STM transition system.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
3
 
4
 
5
 
6
 
7
D. Dice, O. Shalev, and N. Shavit. Transactional locking II. In International Symposium on Distributed Computing (DISC), pages 194--208. Springer, 2006.
8
9
 
10
M. Flé and G. Roucairol. Maximal serializability of iterated transactions. Theoretical Computer Science, pages 1--16, 1985.
11
 
12
G. Gopalakrishnan, Y. Yang, and H. Sivaraj. QB or Not QB: An efficient execution verification tool for memory orderings. In International Conference on Computer Aided Verification (CAV), pages 401--413. Springer, 2004.
13
 
14
 
15
16
17
 
18
19
 
20
 
21
R. Milner. An algebraic definition of simulation between programs. In International Joint Conference on Artificial Intelligence (IJCAI), pages 481--489. William Kaufmann, 1971.
22
 
23
 
24
M. L. Scott. Sequential specification of transactional memory semantics. In ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT), 2006.
25
26


Collaborative Colleagues:
Rachid Guerraoui: colleagues
Thomas A. Henzinger: colleagues
Barbara Jobstmann: colleagues
Vasu Singh: colleagues