Consider the following two threads T1 and T2 that update two shared variables…

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

Consider the following two threads T1 and T2 that update two shared variables a and b. Assume that initially a = b = 1. Though context switching between threads can happen at any time, each statement of T1 or T2 is executed atomically without interruption.

            T1                                  T2

       a = a + 1;                       b = 2 * b;

       b = b + 1;                       a = 2 * a;

Which one of the following options lists all the possible combinations of values of a and b after both T1 and T2 finish execution?

  1. A.

    (a = 4, b = 4); (a = 3, b = 3); (a = 4, b = 3)

  2. B.

    (a = 3, b = 4); (a = 4, b = 3); (a = 3, b = 3)

  3. C.

    (a = 4, b = 4); (a = 4, b = 3); (a = 3, b = 4)

  4. D.

    (a = 2, b = 2); (a = 2, b = 3); (a = 3, b = 4)

Attempted by 337 students.

Sign up free to check your answer

Sign up free

Explore the full course: Gate Guidance By Sanchit Sir

Loading lesson…