ACM Home Page
Please provide us with feedback. Feedback
Proving that non-blocking algorithms don't block
Full text PdfPdf (307 KB)
Source
Annual Symposium on Principles of Programming Languages archive
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
Savannah, GA, USA
SESSION: Concurrency table of contents
Pages 16-28  
Year of Publication: 2009
ISBN:978-1-60558-379-2
Also published in ...
Authors
Alexey Gotsman  University of Cambridge, Cambridge, United Kingdom
Byron Cook  Microsoft Research, Cambridge, United Kingdom
Matthew Parkinson  University of Cambridge, Cambridge, United Kingdom
Viktor Vafeiadis  Microsoft Research, Cambridge, United Kingdom
Sponsors
ACM: Association for Computing Machinery
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 23,   Downloads (12 Months): 194,   Citation Count: 2
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/1480881.1480886
What is a DOI?

ABSTRACT

A concurrent data-structure implementation is considered non-blocking if it meets one of three following liveness criteria: wait-freedom, lock-freedom, or obstruction-freedom. Developers of non-blocking algorithms aim to meet these criteria. However, to date their proofs for non-trivial algorithms have been only manual pencil-and-paper semi-formal proofs. This paper proposes the first fully automatic tool that allows developers to ensure that their algorithms are indeed non-blocking. Our tool uses rely-guarantee reasoning while overcoming the technical challenge of sound reasoning in the presence of interdependent liveness properties.


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
B. Alpern and F. B. Schneider. Defining liveness. Inf. Process. Lett., 21(4):181--185, 1985.
 
3
J. Berdine, B. Cook, D. Distefano, and P. W. O'Hearn. Automatic termination proofs for programs with shape-shifting heaps. In CAV'06: Conference on Computer Aided Verification, volume 4144 of LNCS, pages 386--400. Springer, 2006.
 
4
S. D. Brookes. Full abstraction for a shared-variable parallel language. Inf. Comput., 127(2):145--163, 1996.
 
5
 
6
C. Calcagno, M. J. Parkinson, and V. Vafeiadis. Modular safety checking for fine-grained concurrency. In SAS'07: Static Analysis Symposium, volume 4634 of LNCS, pages 233--248. Springer, 2007.
 
7
R. Colvin and B. Dongol. Verifying lock-freedom using well-founded orders. In ICTAC'07: International Colloquium on Theoretical Aspects of Computing, volume 4711 of LNCS, pages 124--138. Springer, 2007.
8
 
9
S. Doherty, L. Groves, V. Luchangco, and M. Moir. Formal verification of a practical lock--free queue algorithm. In FORTE'04: Conference on Formal Techniques for Networked and Distributed Systems, volume 3235 of LNCS, pages 97--114. Springer, 2004.
 
10
B. Dongol. Formalising progress properties of non-blocking programs. In ICFEM'06: Conference on Formal Engineering Methods, volume 4260 of LNCS, pages 284--303. Springer, 2006.
 
11
X. Feng, R. Ferreira, and Z. Shao. On the relationship between concurrent separation logic and assume-guarantee reasoning. In ESOP'07: European Symposium on Programming, volume 4421 of LNCS, pages 173--188. Springer, 2007.
12
 
13
14
15
 
16
 
17
M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2008.
 
18
C. B. Jones. Specification and design of (parallel) programs. In IFIP Congress, pages 321--332. North-Holland, 1983.
 
19
 
20
 
21
S. Magill, J. Berdine, E. M. Clarke, and B. Cook. Arithmetic strengthening for shape analysis. In SAS'07: Static Analysis Symposium, volume 4634 of LNCS, pages 419--436. Springer, 2007.
 
22
23
 
24
25
26
 
27
 
28
 
29
 
30
 
31
S. Sarkar, P. Sewell, F. Zappa Nardelli, S. Owens, T. Ridge, T. Braibant, M. Myreen, and J. Alglave. The semantics of x86 multiprocessor machine code. This volume.
 
32
H. Simpson. Four-slot fully asynchronous communication mechanism. IEE Proceedings, 137(1):17--30, 1990.
 
33
R. K. Treiber. Systems programming: Coping with parallelism. Technical Report RJ 5118, IBM Almaden Research Center, 1986.
 
34
V. Vafeiadis. Modular fine-grained concurrency verification. PhD Thesis, University of Cambridge Computer Laboratory, 2008.
 
35
V. Vafeiadis and M. J. Parkinson. A marriage of rely/guarantee and separation logic. In CONCUR'07: Conference on Concurrency Theory, volume 4703 of LNCS, pages 256--271. Springer, 2007.
 
36
M. Vardi. Verification of concurrent programs-the automata-theoretic framework. Ann. Pure Appl. Logic, 51:79--98, 1991.
37
38


Collaborative Colleagues:
Alexey Gotsman: colleagues
Byron Cook: colleagues
Matthew Parkinson: colleagues
Viktor Vafeiadis: colleagues