Skip to main content

Pulse: A dynamic deadlock detection mechanism using speculative execution

Publication ,  Conference
Li, T; Ellis, CS; Lebeck, AR; Sorin, DJ
Published in: USENIX 2005 Annual Technical Conference
January 1, 2005

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.

Duke Scholars

Published In

USENIX 2005 Annual Technical Conference

Publication Date

January 1, 2005

Start / End Page

31 / 44
 

Citation

APA
Chicago
ICMJE
MLA
NLM
Li, T., Ellis, C. S., Lebeck, A. R., & Sorin, D. J. (2005). Pulse: A dynamic deadlock detection mechanism using speculative execution. In USENIX 2005 Annual Technical Conference (pp. 31–44).
Li, T., C. S. Ellis, A. R. Lebeck, and D. J. Sorin. “Pulse: A dynamic deadlock detection mechanism using speculative execution.” In USENIX 2005 Annual Technical Conference, 31–44, 2005.
Li T, Ellis CS, Lebeck AR, Sorin DJ. Pulse: A dynamic deadlock detection mechanism using speculative execution. In: USENIX 2005 Annual Technical Conference. 2005. p. 31–44.
Li, T., et al. “Pulse: A dynamic deadlock detection mechanism using speculative execution.” USENIX 2005 Annual Technical Conference, 2005, pp. 31–44.
Li T, Ellis CS, Lebeck AR, Sorin DJ. Pulse: A dynamic deadlock detection mechanism using speculative execution. USENIX 2005 Annual Technical Conference. 2005. p. 31–44.

Published In

USENIX 2005 Annual Technical Conference

Publication Date

January 1, 2005

Start / End Page

31 / 44