An algorithm which uses process algebra, as a mathematical model, to detect and resolve deadlocks in concurrent processes in a distributed system environment is presented. The key idea is to allow a controller in each site to maintain a table of all processes in a particular site availing themselves of a specific resource. The main problem addressed involves a scheme to detect whether a deadlock, if any, exists. Moreover, if a deadlock exists, the algorithm determines which among the processes should be aborted. The selection of such a process is dictated by the objective of affecting as small a number of processes as possible.