Consider the following pseudocode, where S is a semaphore initialized to 5 in…

GATE · 2021 · CS · Set 1 · Computer Science & IT

Consider the following pseudocode, where S is a semaphore initialized to 5 in line #2 and counter is a shared variable initialized to 0 in line #1. Assume that the increment operation in line #7 is not atomic. 

int counter =0;

Semaphore S= init(5);

void parop(void)

{

           wait(S);

           wait(S);

           counter++;

           signal(S)

           signal(S);

     }

If five threads execute the function parop concurrently, which of the following program behavior(s) is/are possible?


  1. A.

    The value of counter is 5 after all the threads successfully complete the execution of parop

  2. B.

    The value of counter is 1 after all the threads successfully complete the execution of parop

  3. C.

    The value of counter is 0 after all the threads successfully complete the execution of parop

  4. D.

    There is a deadlock involving all the threads

Attempted by 224 students.

Sign up free to check your answer

Sign up free

Explore the full course: Gate Guidance By Sanchit Sir

Loading lesson…