In the book Operating System Concepts, it is said that:
A claim edge $P_i \rightarrow R_j$ indicates that process $P_i$ may request resource $R_j$ at some time in the future.
Here one can assume two different things from this line:
- $P_i$ may request for $R_j$ in the future, but we don't know about it.
- We know that $P_i$ will request for $R_j$ in the future.
We know that resource allocation graph algorithm comes under Deadlock Avoidance under which it is clearly stated that:
An alternative method for avoiding deadlocks is to require additional information about how resources are to be requested.
Which clearly means that we should know processes' requests in advance. Therefore the second assumption fits.
Now, it is stated in the book that:
When a resource $R_j$ is released by $P_i$, the assignment edge $R_j \rightarrow P_i$ is reconverted to a claim edge $P_j \rightarrow R_j$.
But this would mean that we're sure that $P_i$ will request for $R_j$ in the future. But this would only be in the case when $P_i$ requests for multiple instances of $R_j$. But, this isn't given. So, why do we reconvert the assignment edge back to a claim edge?