 Hello and welcome to the session on Issues in Deadlock Detection and Control Organization in Distributed Deadlock Detection. Before we move forward, here are the learning outcomes. At the end of this session, students will be able to uniquely identify the issues in Deadlock Detection and control organizations for Distributed Deadlock Detection. Detection of Detection and Resolution addressing two basic issues. Detection of Existing Deadlocks and Resolution of Detected Deadlocks. First one, Detection. Detection of Deadlocks involves two issues. Maintenance of the wait for graph and the search of the wait for graph for presence of cycles. In distributed computing, a cycle may involve several sites. So the search for a cycle mostly depends upon how the wait for graph of the system is represented across the system. Depending upon the manner in which wait for graph information is maintained and the search for cycle is carried out, there are centralized distributed and hierarchical algorithms for Deadlock Detection in Distributed Computing. A correct Deadlock Detection algorithm must satisfy the following two conditions. Progress, no undetected deadlocks and safety, no false deadlocks. First one, Progress. The algorithm must detect all existing deadlocks in infinite time. Once a deadlock has occurred, the deadlock detection activity should continuously progress until deadlock is detected. In other words, after all wait for dependencies for a deadlock have formed, the algorithm should not wait anymore. Wait for dependencies to form the detect the deadlocks. Safety. The algorithm should not report deadlocks which are non-existent. In distributed computing, where there is no global memory and communications occurs strongly by messages. It is difficult to design a correct deadlock detection algorithm because site may obtain out of date and inconsistent wait for graphs of the system. As a result, sites may detect cycle that does not exist, but whose different segments were existing in the system at different times. This is the primary reason why many deadlock detection algorithms reported are incorrect. Resolution. Deadlock resolution involves breaking existing wait for dependencies in the system, wait for graph to resolve deadlocks. It involves rolling back one or more processes that are deadlocked and assigning their resources to block processes in the deadlock so that they can resume execution. Here you have to note that several deadlock detection algorithms propagate information regarding wait for dependencies along the edges of the wait for graphs. Therefore, when a wait for dependency is broken, the corresponding information should be immediately cleaned from the system. If this information is not cleaned appropriately in timely manner, in that case it may result in detection of phantom deadlocks. Centralize control. In centralized detection algorithms connected to a site also called as control site has the responsibility of constructing the global wait for graph and searching it for cycles. The control site may maintain global wait for graph constantly or it may be filled whenever for deadlock detection is to be carried out by soliciting the local wait for graph from every site. Centralized deadlock detection algorithms are conceptually simple and are easy to implement. Stop resolution is simple in these algorithms. The control site has complete information about the deadlock cycle and it can optimally resolve the deadlock. However, the centralized deadlock detection algorithms have a single point of failure. Communication links near the control site are likely to be congested because the control site receives wait for graph information from all other sites. Also, the message traffic generated due to the deadlock detection activity is independent of the rate of deadlock formation and the structure of deadlock cycles. Distributed control. In distributed deadlock detection algorithms, responsibility for detecting a global deadlock is shared equally among all sites. The global state graph is spread over many sites and several sites participate in detection of global cycle. Unlike centralized algorithms, distributed control is not vulnerable to a single point of failure and no site is swamped with deadlock detection activity. So deadlock detection is initiated only when a waiting process is suspected to be a part of deadlock cycle. So deadlock detection is initiated only when a waiting process is suspected to be a part of deadlock cycle. Hierarchical control. In hierarchical deadlock detection algorithms, sites are arranged in a hierarchical fashion and a site details deadlocks involving only its descended sites. Hierarchical algorithms exploit access patterns local to a cluster of sites to efficiently detect deadlocks. They tend to get based of both the generalized and distributed control organizations where there is no single point of failure and a site is not swamped down by deadlock detection activities which it is not concerned. However, hierarchical deadlock detection algorithms require special care while arranging the sites in a hierarchy. For efficiency, most deadlocks should be localized to as clusters as possible. The objective of hierarchical control is defeated if most deadlocks span several clusters. A description of deadlock detection algorithms based on the centralized, distributed and hierarchical control organizations are as follows. For these algorithms, the describes the basic ideas behind their operation, compare them with each other and has their pros and cons. Here the performance of in terms of message traffic, the message size and delay in detecting a deadlock. Due to these reasons, it is not possible to enumerate these performance measures with high accuracy for many deadlock detection algorithms. The statistical nature of the topology of weight for graph, the allocation of deadlock detection activities, despite the absence of deadlock. For most algorithm performance bounds rather than exact numbers are based as means of comparison and performance analysis. Detection of auditing log by several processes, Ho-Rama-Murthy algorithm, Ho-Rama-Murthy give two centralized deadlock detection algorithms called two-phase and one-phase algorithm to fix the problem of the above algorithm. These algorithms are respectively connect two consecutive status reports to keep the status table at each side to ensure that the control side gets a consistent view of the system. Here pause the video, think and answer. In Ho-Rama-Murthy two-phase algorithm, a resource status table is maintained by central side, control side, both A and B none of these. The answer is C, both control and central side. Here is the reference. Thank you.