a) operating system
b) resources
c) system storage state
d) resource allocation state
This means it looks at the current allocation of resources to processes and the maximum resource needs of each process to determine if granting a resource request would lead to a deadlock. By analyzing this information, the algorithm can prevent deadlock by denying requests that could potentially create a circular wait.
The Banker’s Algorithm is a classic example of a deadlock avoidance algorithm.