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?
- A.
(a = 4, b = 4); (a = 3, b = 3); (a = 4, b = 3)
- B.
(a = 3, b = 4); (a = 4, b = 3); (a = 3, b = 3)
- C.
(a = 4, b = 4); (a = 4, b = 3); (a = 3, b = 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 freeLoading lesson…