On Dijkstra's Algorithm for Deadlock Detection

We study a classical problem in operating systems concerning deadlock detection for systems with reusable resources. The elegant Dijkstra’s algorithm utilizes simple data structures, but it has the cost of quadratic dependence on the number of the processes. Our goal is to reduce the cost in an optimal way without losing the simplicity of the data structures. More specifically, we present a graph-free and almost optimal algorithm with the cost of linear dependence on the number of the processes, when the number of resources is fixed and when the units of requests for resources are bounded by constants.