A Distributed Deadlock Detection and Resolution Algorithm for Process Networks
In the process network (PN) model, multiple concurrent processes communicate over unidirectional FIFO queues. PN is useful for modeling signal processing systems of streaming data, and naturally captures parallelism in these systems. PN provides formal execution properties to alleviate the difficulties of threaded and distributed programming, and naturally maps onto parallel and distributed targets. For a large class of PN, clever run-time scheduling can permit execution in bounded memory. In general, PN termination and boundedness cannot be statically determined, so correct bounded scheduling of PN requires run-time deadlock detection. We present the first algorithm that correctly performs dynamic deadlock detection and resolution for bounded scheduling of PN. The proposed algorithm is a modification of a distributed deadlock detection algorithm by Mitchell and Merritt.