Deadlock avoidance methods analyze resource allocation to determine if granting a request would lead to an unsafe state where deadlock could occur. A deadlock happens when multiple processes are waiting indefinitely for resources held by each other in a cyclic dependency. To prevent deadlock, an operating system must have information on current resource availability and allocations, as well as future resource needs. The system only grants requests that will lead to a safe state where there are enough resources for all remaining processes and deadlock is not possible.