This Article 
 Bibliographic References 
 Add to: 
A Distributed Deadlock Detection and Resolution Algorithm and its Correctness Proof
October 1988 (vol. 14 no. 10)
pp. 1443-1452

The key idea of the algorithm is to let one transaction controller be in charge of all transactions in a set of interacting transactions. Two transactions are interacting if they are both interested in (accessing) the same resource. In addition, the controller is in charge of all the resources allocated to any of the transactions in the set. Having one controller in charge of all the transactions in a set of interacting transactions and all the resources allocated to them makes it easier to detect deadlocks and avoid them. The main problem dealt with is how a controller takes charge of another transaction when the transaction tries to access one of the resources currently in the control of the controller and how a controller releases a transaction back to its original controller when the transaction is no longer interested in any of the resources in which one or more of the other transactions are also interested. Communicating sequential processes (CSP) is used to code the algorithm. The correctness of the algorithm is proved in a semiformal manner.

[1] E. W. Dijkstra,A Discipline of Programming. Englewood Cliffs, NJ: Prentice-Hall, 1976.
[2] A. Elmagarmid, A. Datta, and M. T. Liu, "Distributed deadlock detection algorithm in transaction processing systems," inProc. COMPSAC 84, 1984, pp. 81-90.
[3] C. A. R. Hoare, "Communicating sequential processes,"Commun. ACM, vol. 21, pp. 666-677, 1978.
[4] N. Soundararajan, "Axiomatic semantics of CSP," inProc. ACM TOPLAS, 1984, pp. 647-662.

Index Terms:
transaction processing; communicating sequential processes; distributed deadlock detection; correctness proof; transaction controller; distributed processing; program verification; programming theory; system recovery; transaction processing
"A Distributed Deadlock Detection and Resolution Algorithm and its Correctness Proof," IEEE Transactions on Software Engineering, vol. 14, no. 10, pp. 1443-1452, Oct. 1988, doi:10.1109/32.6189
Usage of this product signifies your acceptance of the Terms of Use.