There are three main methods for dealing with deadlocks in an operating system: prevention, avoidance, and detection with recovery. Prevention ensures that the necessary conditions for deadlock cannot occur through restrictions on resource allocation. Avoidance uses additional information about future resource needs and requests to determine if allocating resources will lead to an unsafe state. Detection identifies when a deadlock has occurred, then recovery techniques like process termination or resource preemption are used to resolve it. No single approach is suitable for all resource types, so systems often combine methods by applying the optimal one to each resource class.