| The theory of deadlock avoidance via discrete control |
| Full text |
Pdf
(440 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: Static analysis II
table of contents
Pages 252-263
Year of Publication: 2009
ISBN:978-1-60558-379-2
Also published in ...
|
|
Authors
|
|
Yin Wang
|
University of Michigan, Ann Arbor, MI, USA
|
|
Stéphane Lafortune
|
University of Michigan, Ann Arbor, MI, USA
|
|
Terence Kelly
|
Hewlett-Packard Labs, Palo Alto, CA, USA
|
|
Manjunath Kudlur
|
University of Michigan, Ann Arbor, MI, USA
|
|
Scott Mahlke
|
University of Michigan, Ann Arbor, MI, USA
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 71, Downloads (12 Months): 334, Citation Count: 0
|
|
|
ABSTRACT
Deadlock in multithreaded programs is an increasingly important problem as ubiquitous multicore architectures force parallelization upon an ever wider range of software. This paper presents a theoretical foundation for dynamic deadlock avoidance in concurrent programs that employ conventional mutual exclusion and synchronization primitives (e.g., multithreaded C/Pthreads programs). Beginning with control flow graphs extracted from program source code, we construct a formal model of the program and then apply Discrete Control Theory to automatically synthesize deadlock-avoidance control logic that is implemented by program instrumentation. At run time, the control logic avoids deadlocks by postponing lock acquisitions. Discrete Control Theory guarantees that the program instrumented with our synthesized control logic cannot deadlock. Our method furthermore guarantees that the control logic is maximally permissive: it postpones lock acquisitions only when necessary to prevent deadlocks, and therefore permits maximal runtime concurrency. Our prototype for C/Pthreads scales to real software including Apache, OpenLDAP, and two kinds of benchmarks, automatically avoiding both injected and naturally occurring deadlocks while imposing modest runtime overheads.
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
|
Apache. Apache bug database, 2008. https://issues.apache.org/bugzilla/index.cgi.
|
| |
2
|
E. R. Boer and T. Murata. Generating basis siphons and traps of Petri nets using the sign incidence matrix. IEEE Trans. on Circuits and Systems-I, 41(4):266--271, April 1994.
|
| |
3
|
|
 |
4
|
|
 |
5
|
|
 |
6
|
|
| |
7
|
|
| |
8
|
|
| |
9
|
Intel. Intel C++ STM Compiler, Prototype Edition, January 2008.
|
| |
10
|
|
| |
11
|
|
| |
12
|
|
| |
13
|
J. Larus and R. Rajwar. Transactional Memory. Morgan & Claypool, 2007.
|
| |
14
|
Z. Li, M. Zhou, and N. Wu. A survey and comparison of Petri netbased deadlock prevention policies for flexible manufacturing systems. IEEE Trans. on Systems, Man, and Cybernetics-Part C, 38(2):173--188, March 2008.
|
 |
15
|
Shan Lu , Soyeon Park , Eunsoo Seo , Yuanyuan Zhou, Learning from mistakes: a comprehensive study on real world concurrency bug characteristics, Proceedings of the 13th international conference on Architectural support for programming languages and operating systems, March 01-05, 2008, Seattle, WA, USA
|
 |
16
|
Bill McCloskey , Feng Zhou , David Gay , Eric Brewer, Autolocker: synchronization inference for atomic sections, Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.346-358, January 11-13, 2006, Charleston, South Carolina, USA
|
| |
17
|
T. Murata. Petri nets: Properties, analysis and applications. Proceedings of the IEEE, 77(4):541--580, April 1989.
|
| |
18
|
OpenImpact. OpenIMPACT, 2008. http://www.gelato.uiuc.edu/.
|
| |
19
|
OpenLDAP. OpenLDAP Issue Tracking System, 2008. http://www.openldap.org/its/.
|
| |
20
|
C. A. Petri. Kommunikation mit Automaten. PhD thesis, Bonn: Institut für Instrumentelle Mathematik, Schriffen des IIM Nr.3, 1962.
|
| |
21
|
|
| |
22
|
W. Reisig. Petri nets. In EATCS Monographs on Theoretical Computer Science, volume 4. Springer-Verlag, Berlin, 1985.
|
| |
23
|
S. A. Reveliotis. Real-Time Management of Resource Allocation Systems: A Discrete-Event Systems Approach. Springer, New York, NY, 2005.
|
 |
24
|
|
 |
25
|
|
| |
26
|
Y. Wang, T. Kelly, M. Kudlur, S. Lafortune, and S. Mahlke. Gadara: Dynamic deadlock avoidance for multithreaded programs. In OSDI, 2008a.
|
| |
27
|
Y. Wang, T. Kelly, M. Kudlur, S. Mahlke, and S. Lafortune. The application of supervisory control to deadlock avoidance in concurrent software. In Workshop on Discrete Event Systems, May 2008b.
|
| |
61
|
AdamWelc, Bratin Saha, and Ali-Reza Adl-Tabatabai. Irrevocable transactions and their applications. In SPAA, June 2008.
|
|