Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
Compact finite difference schemes for ocean models: 1. Ocean waves
Journal of Computational Physics
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
RacerX: effective, static detection of race conditions and deadlocks
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Java-MaC: A Run-Time Assurance Approach for Java Programs
Formal Methods in System Design
Pulse: a dynamic deadlock detection mechanism using speculative execution
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
A transformation to provide deadlock-free programs
ICCS'03 Proceedings of the 2003 international conference on Computational science: PartII
Static deadlock detection for java libraries
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Hi-index | 0.00 |
We introduce the concept of deadlock immunity --a program's ability to avoid all deadlocks that match patterns of deadlocks experienced in the past. We present here an algorithm for enabling large software systems to automatically acquire such immunity without any programmer assistance. We prove that the algorithm is sound and complete with respect to the immunity property. We implemented the algorithm as a tool for Java programs, and measurements show it introduces only modest performance overhead in real, large applications like JBoss. Deadlock immunity is as useful as complete freedom from deadlocks in many practical cases, so we see the present algorithm as a pragmatic step toward ridding complex concurrent programs of their deadlocks.