Tu banner alternativo

Wait-for graph

In this article we will address the topic of Wait-for graph, which has sparked great interest and debate in recent years. Wait-for graph has aroused the curiosity of researchers, academics and the general public, due to its relevance in different areas of society. From its impact on the economy, politics, culture, to its influence on people's daily lives, Wait-for graph has become a central topic of discussion and reflection. Along these lines we will analyze different perspectives and opinions about Wait-for graph, with the aim of offering a broad and enriching vision of this topic that is so relevant today.

Tu banner alternativo

A wait-for graph in computer science is a directed graph used for deadlock detection in operating systems and relational database systems.

In computer science, a system that allows concurrent operation of multiple processes and locking of resources and which does not provide mechanisms to avoid or prevent deadlock must support a mechanism to detect deadlocks and an algorithm for recovering from them.

One such deadlock detection algorithm makes use of a wait-for graph to track which other processes a process is currently blocking on. In a wait-for graph, processes are represented as nodes, and an edge from process to implies is holding a resource that needs and thus is waiting for to release its lock on that resource. If the process is waiting for more than a single resource to become available (the trivial case), multiple edges may represent a conjunctive (and) or disjunctive (or) set of different resources or a certain number of equivalent resources from a collection. The possibility of a deadlock is implied by graph cycles in the conjunctive case, and by knots in the disjunctive case. There is no simple algorithm for detecting the possibility of deadlock in the final case.[1]

A wait-for graph is a graph of conflicts blocked by locks from being materialized; it can be also defined as the graph of non-materialized conflicts; conflicts not materialized are not reflected in the precedence graph and do not affect serializability.

The wait-for-graph scheme is not applicable to a resource allocation system with multiple instances of each resource type.

An arc from a transaction T1 to another transaction T2 represents that T1 waits for T2 to release a lock (i.e., T1 acquired a lock which is incompatible with a previously acquired lock from T2). A lock is incompatible with another if they are on the same object, one is a write, and they are from different transactions.

A deadlock occurs in a schedule if and only if there is at least one cycle in the wait-for graph. Not every cycle necessarily represents a distinct deadlock instance.

References

  1. ^ Srinivasan, Selvaraj; Rajaram, Rajeev (January 2011). "A decentralized deadlock detection and resolution algorithm for generalized model in distributed systems". Distributed and Parallel Databases. 29 (4). Tamil Nadu: RMD Engineering College: 261–276. doi:10.1007/s10619-011-7078-7. S2CID 15749022. Retrieved October 21, 2020.