This document discusses deadlocks in computer systems. It begins by defining a deadlock as a state where a set of blocked processes are each holding resources and waiting for resources held by others in a cyclic manner. It then presents methods for handling deadlocks, including prevention, avoidance, and detection and recovery. For avoidance, it describes using a resource allocation graph to model processes and resources, and the banker's algorithm to ensure the system is always in a safe state where deadlocks cannot occur.