In a certain operating system, deadlock prevention is attempted using the following scheme. Each process is assigned a unique timestamp, and is restarted with the same timestamp if killed. Let $P_h$ be the process holding a resource $R, P_r$ be a process requesting for the same resource $R,$ and $T(P_h)$ and $T(P_r)$ be their timestamps respectively. The decision to wait or preempt one of the processes is based on the following algorithm.
if T(Pr) < T(Ph) then
kill Pr
else wait
Which one of the following is TRUE?
- The scheme is deadlock-free, but not starvation-free
- The scheme is not deadlock-free, but starvation-free
- The scheme is neither deadlock-free nor starvation-free
- The scheme is both deadlock-free and starvation-free