Resource Allocation Graph Algorithm
Maintains a graph with a directed edge from each process to each resource it might request. (needs apriori knowledge).
Allocated resource reverses the edge direction.
Released resource returns the edge to its original direction.
The algorithm allocates a resource only if it can do that without creating a cycle in the graph.