Solution to Question 8.9 ======================== To show that the system is dead-lock free, we show that a circular wait is not possible. We argue by contradiction. Suppose that we have a circular wait. Let Alloc[i]=number of resources allocated to Pi. Then: Alloc[0]+Alloc[1]+...+Alloc[n-1]=m (*) since otherwise there would be free resources and hence no dead-lock yet. We assume that Alloc[i]>0 for all i, since if for some i Alloc[i]=0, then we can ignore that process since it is not part of the circular wait anyways. Let Req[i]=number of resources requested by Pi. It must be the case that Req[i]>0 for all i, since if some allocated process was making no request, once it was done with its resources, it would let them free, and thay could be re-assigned. By (b) we know that: (Alloc[0]+Req[0])+(Alloc[1]+Req[1])+...+(Alloc[n]+Req[n])0, this is a contradiction. Note that condition (a) is there to ensure that no process requests more than m resources (so there is no single process dead-lock).