2005 · 63 citations · 10 references
ComputingComputer ScienceComputer SystemsDistributed SystemsFault-tolerant SystemsOperating SystemsConcurrency AnalysisConcurrent ProgrammingSpeculative ExecutionConcurrency Vulnerability DetectionDeadlockDeadlock AnalysisDeadlock DetectionDeadlock HandlingDeadlock VulnerabilitiesDenial Of ServiceSemaphores
Deadlock can occur wherever multiple processes interact. Most existing static and dynamic deadlock detection tools focus on simple types of deadlock, such as those caused by incorrect ordering of lock acquisitions. In this paper, we propose Pulse, a novel operating system mechanism that dynamically detects various types of deadlock in application programs. Pulse runs as a system daemon. Periodically, it scans the system for processes that have been blocked for a long time (e.g., waiting on I/O events). To determine if these processes are deadlocked, Pulse speculatively executes them ahead to discover their dependences. Based on this information, it constructs a general resource graph and detects deadlock by checking if the graph contains cycles. The ability to look into the future allows Pulse to detect deadlocks involving consumable resources, such as synchronization semaphores and pipes, which no existing tools can detect. We evaluate Pulse by showing that it can detect deadlocks in the classical dining-philosophers and smokers problems. Furthermore, we show that Pulse can detect a well-known deadlock scenario, which is widely referred to as a denial-of-service vulnerability, in the Apache web server. Our results show that Pulse can detect all these deadlocks within three seconds, and it introduces little performance overhead to normal applications that do not deadlock.
10
Xen and the art of virtualization
Paul Barham, Boris Dragovic, Keir Fraser et al. · ACM SIGOPS Operating Systems Review · 2003 · 5.9K citations
Gerard J. Holzmann · IEEE Transactions on Software Engineering · 1997 · 3.8K citations
Willem Visser, Klaus Havelund, Guillaume Brat et al. · Automated Software Engineering · 2003 · 1.4K citations
James C. Corbett, Matthew B. Dwyer, John Hatcliff et al. · 2000 · 1.1K citations · Full text