The correct answer is D. Mutual Exclusion, Hold and wait, Preemption, No Circular Wait.
Mutual exclusion is a condition where only one process can access a resource at a time. Hold and wait is a condition where a process is holding a resource and waiting for another resource. Preemption is a condition where a process can be interrupted and its resources taken away. Circular wait is a condition where a process is waiting for
a resource that is being held by another process, which is waiting for a resource that is being held by the first process, and so on.If any of these conditions are not met, deadlock cannot occur. For example, if there is no mutual exclusion, then multiple processes can access resources at the same time, and there is no risk of deadlock. If there is no hold and wait, then a process cannot hold a resource and wait for another resource. If there is no preemption, then a process cannot be interrupted and its resources taken away. If there is circular wait, then there is a risk of deadlock.
Deadlock is a situation in which two or more processes are waiting for each other to release a resource that they are currently holding. This can lead to a system crash or a loss of data. There are a number of ways to prevent deadlock, such as using resource allocation algorithms, deadlock detection and recovery, and avoiding circular wait.