What is Process Synchronization?


Process Synchronization is a mechanism by which more than one processes concurrently share a resource in such a way that they can utilize the resource without any deadlock.

A critical section is a program segment where shared resource is accessed by the concurrent processes.

Here in this post we  are telling about some questions from process synchronization section which were asked in previous year in gate exam

1. A critical section is a program segment     Gate ( 1996) 

(a) which should run in a certain specified amount of time
(b) which avoids deadlocks
(c) where shared resources are accessed
(d) which must be enclosed by a pair of semaphore operations, P and V

Ans: option (c)

2. A solution to the Dining Philosophers Problem which avoids deadlock is GATE1998

(a) ensure that all philosophers pick up the left fork before the right fork
(b) ensure that all philosophers pick up the right fork before the left fork
(c) ensure that one particular philosopher picks up the left fork before the right fork, and that all other philosophers pick up the right fork before the left fork
(d) None of the above

Answer ( C)

3. A counting semaphore was initialized to 10. Then 6 P (wait) operations and 4V (signal) operations were completed on this semaphore. The resulting value of the semaphore is  
                          
(a) 0 (b) 8 (c) 10 (d) 12                                       GATE 1998

Ans: option(b) 

Since during P operation after each P operation value of the semaphore is decreased by one and during the signal operation value of semaphore variable is increased by one after each V operation. So Initially when the value of Semaphore is 10 then after 6 P operation value will be 4 now at this stage when 4 successive V operation will be performed then the value of Semaphore variable will be 8.





4. Consider the methods used by processes P1 and P2 for accessing their critical sections whenever needed, as given below. The initial values of shared boolean variables S1 and S2 are randomly assigned. Gate 2010

Method Used by P1

while (S1 == S2) ;
Critica1 Section
S1 = S2;

Method Used by P2

while (S1 != S2) ;
Critica1 Section
S2 = not (S1);

Which one of the following statements describes the properties achieved?
(a) Mutual exclusion but not progress
(b) Progress but not mutual exclusion
(c) Neither mutual exclusion nor progress
(d) Both mutual exclusion and progress

Answer: A

Since we know that as per the rule of mutual exclusion No two processes may be simultaneously present in the critical section at the same time. That is, if one process is present in the critical section other should not be allowed.So for the given problem process P1 can enter critical section only if S1 is not equal to S2, and P2 can enter critical section only if S1 is equal to S2. Therefore
Mutual Exclusion is satisfied.


Progress condition state that  no process running outside the critical section should block the other interested process from entering critical section whenever critical section is free.

So for the given problem suppose P1 after executing critical section again want to execute the critical section and P2 dont want to enter the critical section, then in that case P1 has to unnecessarily wait for P2. Hence progress condition is not satisfied.

5. The enter_CS() and leave_CS() functions to implement critical section of a process are realized using test‐and‐set instruction as follows:   ) GATE‐2009

void enter_CS(X)
{
while testandset(
X) ;
}
void leave_CS(X)
{
X = 0;
}

In the above solution, X is a memory location associated with the CS and is initialized to 0. Now consider the following statements:

I. The above solution to CS problem is deadlock‐free
II. The solution is starvation free.
III. The processes enter CS in FIFO order.
IV More than one process can enter CS at the same time.

Which of the above statements is TRUE?

(a) I only
(b) I and II
(c) II and III
(d) IV only

Ans: option (a) 


The test‐and‐set instruction is an instruction used to write to a memory location and return its old value as a single atomic (i.e., non‐Iterruptible) operation. Since it is an atomic instruction it guarantees mutual exclusion.