2,218 views

A computer system has $6$ tape devices, with n processes competing for them. Each process may need $3$ tape drives. The maximum value of n for which the system is guaranteed to be deadlock-free is:

1. $2$
2. $3$
3. $4$
4. $1$

### Subscribe to GO Classes for GATE CSE 2022

Allocate max-$1$ resources to all processes and add one more resource to any process (Pigeon hole principle) so that this particular process can be completed (resources can be freed) and there is no deadlock.

Max resources required is $3$.

$\therefore (3-1)*n+1=6$

$n=\left \lfloor \frac{5}{2} \right \rfloor=2$

Correct Answer: $A$

if I take 4 processes as- P1, P2, P3, P4 and allocate resources as 1, 1, 1, 3 respectively, then P4 will complete its task and release the resources held by it and hence others can complete their task. And hence the system is deadlock free by taking 4 processes.

edited

@PriyankaS

 P1 P2 P3 P4 1 1 1 1 1 1

The case which you have taken will not lead to deadlock but if I consider this case for your example then there will be a deadlock.

So we need such a number of process in which if we try for any possibility deadlock should  not occur!

For $n=3$, $2-2-2$ combination of resources leads to deadlock.

For $n=2$, $3 - 3$ is the maximum need and that can always be satisfied.

I may be a bit late to ask this question. But nonetheless...

Consider there are 4 processes and each process has 1 resource. There will be two resources remaining. One of the four process may ask for 2 resources and the resulting state will be a safe state. (Infact, one of the resource can request only one tape device and even after that it will be in safe state.) So the max process will be 4(option C) right?

your assumption is good. But you should take care of question statement in the question statement it has been said that

### "The maximum value of n for which the system is guaranteed to be deadlock free is"

here guaranteed word is used and due to this word your answer is not correct so if guaranteed is not used in question statement in that case you may be correct.

@GaneshA We can come up with many such allocation which will not cause deadlock. Question is asking "guaranteed to be deadlock free". Even if there is is a single case causing deadlock, it will not be considered.

Worst case allocation is all process gets one less than their maximum demand and all are blocked as after such assignment no one goes to completion.

Please explain, I am not able to understand.

If I take 4 processes as- P1, P2, P3, P4 and allocate resources as 1, 1, 1, 3 respectively, then P4 will complete its task and release the resources held by it and hence others can complete their task. And hence the system is deadlock free by taking 4 processes.

How come using 4 processes deadlock free is not guaranteed?

We need to only that option in which system will always be deadlock free..

Case 1 if we have 4 processes.  indeed we do have possibility of deadlock with 4 processes.

 p1 p2 p3 p4 1 1 1 1 1 1

Case 2 if we have 3 processes. Again with 3 processes we can have deadlock

 p1 p2 p3 1 1 1 1 1 1

Case 3 if we have 2 processes. With 2 processes we can never have deadlock in any configuration..

 p1 p2 1 1 1 1 1 1

We have to discard all the cases where we can have deadlock..2 is the only option in which system will be deadlock free.