 Hello and welcome to the session on Distributed Deadlock Detection Algorithms Part 1. Learning Outcomes At the end of this session, students will be able to uniquely identify the functionality of path pushing algorithm and edge chasing algorithms for distributed deadlock detection. In distributed deadlock detection algorithms, all sites collectively cooperate to detect a cycle in the state graph that is likely to be distributed over several sites of the system. Distributed deadlock detection algorithm can be initiated whenever a process is forced to wait and it can be initiated either by local site of the process or by site where process waits. Distributed deadlock detection algorithms can be divided into four classes. Path pushing algorithms, edge chasing algorithms, diffusion computation algorithms, global state detection algorithm, path pushing algorithm. Deadlock detection algorithms information about the wait for dependencies is propagated in the form of paths. Obermark's algorithm is chosen to illustrate a path pushing deadlock detection algorithm because it is implemented on the distributed database system R of the IBM Corporation. Obermark's algorithm was designed for distributed database system, therefore processes are referred to as transactions which are denoted by T1, T2, and Tn. A transaction may consist of several sub-transactions that normally executed at different sites. Obermark's model assumes that at most one sub-transaction within a given transaction can be executed at a time. The sub-transactions communicate synchronously by passing messages. Obermark's algorithm has two interesting features. Non-local portion of the global transaction wait for graph at a site is abstracted by a distinguished node called external node or denoted as EX, which helps in determining potential multi-site deadlocks without requiring a huge global transaction wait for graph to be stored at a site. The algorithm, deadlock detection at a site follows the following iterative process. The site waits for deadlock-related information from other sites. The site combines the received information without its local transaction wait for graph to build an updated transaction wait for graph. It detects all cycles and breaks only two cycles which do not contain the node EX. Here you have to note that these cycles are local to this site and all other cycles have the potential to be a part of global cycles. For all cycles EX to T1, T1 to T2, T2 to EX, which contain node EX, the site translates them in string from EX, T1, T2, EX to all other sites where a sub-transaction of T2 is waiting to receive a message from the sub-transaction of T2 at this site. The algorithm reduces message traffic by lexically ordering transactions and sending the string EX, T1, T2, T3 and EX to other sites only if T1 is higher than T3 in the lexical ordering. Also, for deadlock the highest priority transaction detects the deadlock. Chandi Mishra has distributed deadlock detection algorithm for and request model illustrate deadlock detection using HSC. This algorithm uses a message called probe. A probe is triple like IJK denoting that it belongs to a deadlock detection initiated for a process PI and it is being sent by the home site of process PJ to the home site of process PK. A probe message travels along the edges of the global transaction wait for graph and a deadlock is detected when approved message returns to its initiating process. Here we define terms and data structures used in the algorithm. A process PJ is said to be dependent on another process PK if there exists a sequence of processes PJ, PI1, PI2 up to PIM such that process accept PK in sequence is blocked and each process accept the first one that is PJ holds a resource for which the previous process in the sequence is waiting. Process PJ is locally dependent on process PK if PJ is dependent upon PK and both processes are at the same site. The system maintains a Boolean array dependent for each process PI. Initially dependent is false for all i and j the algorithm to determine if a block process is deadlock in the system execute the following algorithm. If PI is locally dependent on itself then declare a deadlock else for all PJ and PK such that PI is locally dependent upon PJ and PJ is waiting on PK and PK and PJ are on different sites. Then probe ijk to the home site of PK. On the receipt of probe ijk the site takes the following actions. If PK is blocked and dependent k is false and PK has not replied to all request of PJ then its begin depend if dependent equal to true and if k is equal to i then declare that PI is deadlocked else for all PM and PN such that PK is locally dependent upon PM PM is waiting on PN PM and PN are on different sites. Send probe imn to the home site of PN and end of the algorithms. Here a probe message is successively propagated along the edges of the global transaction wait for graph and deadlock is detected when a probe message returns to its initiating process. An example of hsing algorithm consider the system shown in figure if process P1 initiates deadlock detection it sends probe 134 to S2. Since P6 is waiting for P8 and P7 is waiting for P10 S2 send probes 168 and 117 to S3 which intersends a probe 191 to S1. On receiving probe 191 S1 declares that P1 is deadlocked. Here pause the video think and answer. Statement 1 in path pushing algorithm distributed deadlocks are detected by maintaining an explicit global wait for graph. The basic idea is to build a global wait for graph to each site of the distributed system. Statement 2 in an hsing algorithm the presence of a cycle in a distributed graph structure is verified by propagating special messages called probes along the edges of the graph. These probes messages are different than the request and reply messages. Here is a both statements are true here is the reference thank you.