Deadlock detection in distributed databases
ACM Computing Surveys (CSUR)
Detection of Ada Static Deadlocks Using Petri Net Invariants
IEEE Transactions on Software Engineering
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
A deadlock detection tool for concurrent Java programs
Software—Practice & Experience
Space/time trade-offs in hash coding with allowable errors
Communications of the ACM
Dynamic software testing of MPI applications with umpire
Proceedings of the 2000 ACM/IEEE conference on Supercomputing
Deadlock detection in distribution object systems
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Non-blocking timeout in scalable queue-based spin locks
Proceedings of the twenty-first annual symposium on Principles of distributed computing
Evaluating Deadlock Detection Methods for Concurrent Software
IEEE Transactions on Software Engineering
Implementing Statecharts in PROMELA/SPIN
WIFT '98 Proceedings of the Second IEEE Workshop on Industrial Strength Formal Specification Techniques
McRT-STM: a high performance software transactional memory system for a multi-core runtime
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Pulse: a dynamic deadlock detection mechanism using speculative execution
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
Transactional boosting: a methodology for highly-concurrent transactional objects
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
Spin model checker, the: primer and reference manual
Spin model checker, the: primer and reference manual
DISC'06 Proceedings of the 20th international conference on Distributed Computing
Brief announcement: concurrent non-commutative boosted transactions
Proceedings of the 28th ACM symposium on Principles of distributed computing
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Deadlock immunity: enabling systems to defend against deadlocks
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
SMV: selective multi-versioning STM
DISC'11 Proceedings of the 25th international conference on Distributed computing
Applying transactional memory to concurrency bugs
ASPLOS XVII Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
Hi-index | 0.00 |
We present Dreadlocks, an efficient new shared-memory spin lock that actively detects deadlocks. Instead of spinning on a Boolean value, each thread spins on the lock owner's per-thread digest, a compact representation of a portion of the lock's waits-for graph. Digests can be implemented either as bit vectors (for small numbers of threads) or as Bloom filters (for larger numbers of threads). Updates to digests are propagated dynamically as locks are acquired and released. Dreadlocks can be applied to any spin lock algorithm that allows threads to time out. Experimental results show that Dreadlocks outperform timeouts under many circumstances, and almost never do worse.