ACM Home Page
Please provide us with feedback. Feedback
Progress guarantee for parallel programs via bounded lock-freedom
Full text PdfPdf (385 KB)
Source
Conference on Programming Language Design and Implementation archive
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation table of contents
Dublin, Ireland
SESSION: Transactions, locks, and parallelism table of contents
Pages 144-154  
Year of Publication: 2009
ISBN:978-1-60558-392-1
Also published in ...
Authors
Erez Petrank  Technion, Haifa, Israel
Madanlal Musuvathi  Microsoft Research, Redmond, WA, USA
Bjarne Steesngaard  Microsoft Research, Redmond, WA, USA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 23,   Downloads (12 Months): 102,   Citation Count: 0
Additional Information:

abstract   references   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/1542476.1542493
What is a DOI?

ABSTRACT

Parallel platforms are becoming ubiquitous with modern computing systems. Many parallel applications attempt to avoid locks in order to achieve high responsiveness, aid scalability, and avoid deadlocks and livelocks. However, avoiding the use of system locks does not guarantee that no locks are actually used, because progress inhibitors may occur in subtle ways through various program structures. Notions of progress guarantee such as lock-freedom, wait-freedom, and obstruction-freedom have been proposed in the literature to provide various levels of progress guarantees.

In this paper we formalize the notions of progress guarantees using linear temporal logic (LTL). We concentrate on lock-freedom and propose a variant of it denoted bounded lock-freedom, which is more suitable for guaranteeing progress in practical systems. We use this formal definition to build a tool that checks if a concurrent program is bounded lock-free for a given bound. We then study the interaction between programs with progress guarantees and the underlying system (e.g., compilers, runtimes, operating systems, and hardware platforms). We propose a means to argue that an underlying system supports lock-freedom. A composition theorem asserts that bounded lock-free algorithms running on bounded lock-free supporting systems retain bounded lock-freedom for the composed execution.


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
Lawrence Bush. Lock free linked list using compare & swap. http://www.cs.rpi.edu/ bushl2/project web/page5.html, April 2002.
 
2
 
3
Brijesh Dongol. Formalising progress properties of non-blocking programs. In Formal Methods and Software Engineering, 8th International Conference on Formal Engineering Methods, ICFEM 2006, pages 284--303, 2006.
4
 
5
Faith Ellen Fich, Victor Luchangco, Mark Moir, and Nir Shavit. Obstruction-free algorithms can be practically wait-free. In DISC, pages 78--92, 2005.
 
6
Anders Gidenstam, Marina Papatriantafilou, Håkon Sundell, and Philippas Tsigas. Practical and efficient lock-free garbage collection based on reference counting. Technical Report 04, Chalmers University of Technology and Göteborg University, 2005.
 
7
Anders Gidenstam, Marina Papatriantafilou, and Philippas Tsigas. Allocating memory in a lock-free manner. In Proceedings of the 13th Annual European Symposium on Algorithms, number 3669 in LNCS, pages 329--342. Springer-Verlag, October 2005.
 
8
Brian Goetz, Tim Peierls, Joshua Block, Joseph Bowbeer, David Holmes, and Doug Lea. Java Concurrency in Practice. Addison-Wesley, 2006.
9
10
11
 
12
 
13
Maurice Herlihy and Nir Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, March 2008.
 
14
 
15
 
26
 
27
Distributed Computing, pages 164---178. Springer--Verlag, 2000.
28
 
29
and Implementation, ACM SIGPLAN Notices, Washington, DC, June 2004. ACM Press.
30
 
31
Symposium on Principles of Distributed Computing, pages 21---30, July 2002.
 
32
Maged M. Michael. Practical lock--free and wait--free LL/SC/VL implementations using 64--bit CAS. In Proceedings of the 18th International Conference
 
33
on Distributed Computing, volume 3274 of LNCS, pages 144---158. Springer--Verlag, October 2004.
34
 
35
Design and Implementation, pages 35---46, June 2004.
 
36
Maged M. Michael and Michael L. Scott. Simple, fast, and practical non--blocking and blocking concurrent queue algorithms. In Proceedings of the
 
37
15th International Symposium on Principles of Distributed Computing, pages 267---275, May 1996.
 
38
Madanlal Musuvathi, Shaz Qadeer, Thomas Ball, Gerard Basler, Piramanayagam Arumuga Nainar, and Iulian Neamtiu. Finding and reproducing
 
39
heisenbugs in concurrent programs. In OSDI 08: Operating Systems Design and Implementation, pages 267---280, 2008.
 
40
Filip Pizlo, Daniel Frampton, Erez Petrank, and Bjarne Steensgard. STOPLESS: A real--time garbage collector for multiprocessors. In Mooly Sagiv,
 
41
editor, ISMM'07 Proceedings of the Fifth International Symposium on Memory Management, pages 159---172, Montr´
 
42
eal, Canada, October 2007. ACM
 
43
Press.
44
 
45
Programming Languages Design and Implementation, ACM SIGPLAN Notices, pages 33---44, Tucson, AZ, June 2008. ACM Press.
 
46
47
 
48
computing, pages 214---222, Ottawa, Ontario, CA, 1995.

Collaborative Colleagues:
Erez Petrank: colleagues
Madanlal Musuvathi: colleagues
Bjarne Steesngaard: colleagues