Gadara: Dynamic deadlock avoidance for multithreaded programs
2008, Proceedings of the Eighth Symposium on Operating Systems Design and Implementation (OSDI���08)
https://doi.org/10.5555/1855741.1855761Abstract
Abstract: Deadlock is an increasingly pressing concern as the multicore revolution forces parallel programming upon the average programmer. Existing approaches to deadlock impose onerous burdens on developers, entail high runtime performance overheads, or offer no help for unmodified legacy code. Gadara automates dynamic deadlock avoidance for conventional multithreaded programs. It employs whole-program static analysis to model programs, and Discrete Control Theory to synthesize lightweight, decentralized, highly ...
References (50)
- AGARWAL, R., AND STOLLER, S. D. Run-time detection of po- tential deadlocks for programs with locks, semaphores, and con- dition variables. In Proc. Workshop on Parallel and Distributed Systems: Testing and Debugging (2006).
- AGARWAL, R., WANG, L., AND STOLLER, S. D. Detecting potential deadlocks with static analysis and runtime monitoring. In Proc. Parallel and Distributed Systems (2006), vol. 3875 of LNCS, Springer-Verlag.
- BAUGH, L., AND ZILLES, C. An analysis of i/o and syscalls in critical sections and their implications for transactional memory. In TRANSACT (2007).
- BOER, E. R., AND MURATA, T. Generating basis siphons and traps of Petri nets using the sign incidence matrix. IEEE Trans. on Circuits and Systems-I 41, 4 (1994).
- CASSANDRAS, C. G., AND LAFORTUNE, S. Introduction to Dsicrete Event Systems, second ed. Springer, 2007.
- CLARKE, E., GRUMBERG, O., AND PELED, D. Model Check- ing. MIT Press, 2002.
- DIJKSTRA, E. W. Solution of a problem in concurrent program- ming control. CACM 8, 9 (1965).
- DIJKSTRA, E. W. Selected Writings on Computing. Springer- Verlag, 1982, ch. The Mathematics Behind the Banker's Algo- rithm.
- ENGLER, D., AND ASHCRAFT, K. RacerX : effective, static detection of race conditions and deadlocks. In SOSP (2003).
- FINKEL, R., AND MADDURI, H. H. An efficient deadlock avoid- ance algorithm. Inf. Process. Lett. 24, 1 (1987).
- FLANAGAN, C., LEINO, K. R. M., LILLIBRIDGE, M., NEL- SON, G., SAXE, J. B., AND STATA:, R. Extended static check- ing for Java. In PLDI (2002).
- GOLD, E. M. Deadlock prediction: Easy and difficult cases. SIAM J. Comput. 7, 3 (1978).
- HABERMANN, A. N. Prevention of system deadlocks. CACM 12, 7 (1969).
- HELLERSTEIN, J. L., DIAO, Y., PAREKH, S., AND TILBURY, D. M. Feedback Control of Computing Systems. Wiley, 2004.
- HOLLOWAY, L., KROGH, B., AND GIUA, A. A survey of Petri net methods for controlled discrete event systems. Discrete Event Dynamic Systems: Theory and Applications 7, 2 (1997).
- HOLT, R. C. Comments on prevention of system deadlocks. CACM 14, 1 (1971).
- HOLT, R. C. Some deadlock properties of computer systems. ACM Comput. Surv. 4, 3 (1972).
- Intel C++ STM Compiler, Prototype Edition, Jan. 2008.
- IORDACHE, M. V., AND ANTSAKLIS, P. J. Supervisory Con- trol of Concurrent Systems: A Petri Net Structural Approach. Birkhäuser, 2006.
- JULA, H., AND CANDEA, G. A scalable, sound, eventually- complete algorithm for deadlock immunity. In Workshop on Run- time Verification (2008).
- KAVI, K. M., MOSHTAGHI, A., AND YI CHEN, D. Modeling multithreaded applications using Petri nets. International Journal of Parallel Programming 30, 5 (2002).
- KNUTH, D. E. Additional comments on a problem in concurrent programming control. CACM 9, 5 (1966).
- LANDI, W. Undecidability of static analysis. ACM Lett. Pro- gram. Lang. Syst. 1, 4 (1992).
- LANG, S.-D. An extended banker's algorithm for deadlock avoidance. IEEE Trans. Software Eng 25, 3 (1999).
- LARUS, J., AND RAJWAR, R. Transactional Memory. Morgan & Claypool Publishers, 2007.
- LEE, E. A. The problem with threads. Tech. rep., UC Berkeley EE & CS Department, Jan. 2006.
- LI, Z., ZHOU, M., AND WU, N. A survey and comparison of Petri net-based deadlock prevention policies for flexible manufac- turing systems. IEEE Trans. on Systems, Man, and Cybernetics- Part C 38, 2 (2008).
- LU, S., PARK, S., SEO, E., AND ZHOU, Y. Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. In ASPLOS (2008).
- MILLER, M. S. Robust Composition: Towards a Unified Ap- proach to Access Control and Concurrency Control. PhD thesis, Johns Hopkins University, 2006.
- MINOURA, T. Deadlock avoidance revisited. J. ACM 29, 4 (1982).
- MOODY, J. O., AND ANTSAKLIS, P. J. Supervisory Control of Discrete Event Systems Using Petri Nets. Kluwer Academic Publishers, 1998.
- MURATA, T. Petri nets: Properties, analysis and applications. Proceedings of the IEEE 77, 4 (1989).
- NEWTON, G. Deadlock prevention, detection, and resolution: an annotated bibliography. SIGOPS Oper. Syst. Rev. 13, 2 (1979).
- NI, Y., WELC, A., ADL-TABATABAI, A.-R., BACH, M., BERKOWITS, S., COWNIE, J., GEVA, R., KOZHUKOW, S., NARAYANASWAMY, R., PREIS, J. O. S., SAHA, B., TAL, A., AND TIAN, X. Design and implementation of transactional con- structs for C/C++. In OOPSLA (2008).
- NIR-BUCHBINDER, Y., TZOREF, R., AND UR, S. Deadlocks: from exhibiting to healing. In Workshop on Runtime Verification (2008).
- OpenIMPACT. http://www.gelato.uiuc.edu/.
- OpenLDAP Issue Tracking System. http://www. openldap.org/its/.
- QIN, F., TUCEK, J., ZHOU, Y., AND SUNDARESAN, J. Rx: Treating bugs as allergies-safe method to survive software fail- ures. ACM TOCS 25, 3 (2007).
- REVELIOTIS, S. A. Real-Time Management of Resource Allo- cation Systems: A Discrete-Event Systems Approach. Springer, 2005.
- SAVAGE, S., BURROWS, M., NELSON, G., SOBALVARRO, P., AND ANDERSON, T. Eraser: A dynamic data race detector for multithreaded programs. ACM TOCS 15, 4 (1997).
- SCHROEDER, B., WIERMAN, A., AND HARCHOL-BALTER, M. Open versus closed: A cautionary tale. In NSDI (2006).
- SPEAR, M. F., SILVERMAN, M., DALESSANDRO, L., MICHAEL, M. M., AND SCOTT, M. L. Implementing and ex- ploiting inevitability in software transactional memory. In Int'l. Conf. on Parallel Processing (2008).
- SUN. WorkShop: Command-Line Utilities. Sun Press, 2006, ch. 24: Using Lock Lint.
- SUTTER, H., AND LARUS, J. Software and the concurrency rev- olution. ACM Queue 3, 7 (2005).
- TRICAS, F., COLOM, J. M., AND EZPELETA, J. Some improve- ments to the banker's algorithm based on the process structure. In IEEE Int'l. Conf. on Robotics and Automation (2000).
- WALLACE, C., JENSEN, P., AND SOPARKAR, N. Supervisory control of workflow scheduling. In Proc. Int'l. Workshop on Ad- vanced Transaction Models and Architectures (1996).
- WANG, Y., KELLY, T., KUDLUR, M., MAHLKE, S., AND LAFORTUNE, S. The application of supervisory control to dead- lock avoidance in concurrent software. In Workshop on Discrete Event Systems (2008).
- WANG, Y., KELLY, T., AND LAFORTUNE, S. Discrete con- trol for safe execution of IT automation workflows. In EuroSys (2007).
- WELC, A., SAHA, B., AND ADL-TABATABAI, A.-R. Irrevoca- ble transactions and their applications. In SPAA (2008).
- Z ÖBEL, D., AND KOCH, C. Resolution techniques and complex- ity results with deadlocks: a classifying and annotated bibliogra- phy. SIGOPS Oper. Syst. Rev. 22, 1 (1988).