Computer Science And Engineering

Computer Science And EngineeringOperating Systems (OS)Multiple Choice (MCQ)1 Mark
Q7.

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.

\textbf{T1} & \textbf{T2} \\ \text{a} = \text{a} + 1; & \text{b} = 2 * \text{b}; \\ \text{b} = \text{b} + 1; & \text{a} = 2 * \text{a}; \end{array}$$ 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)(\text{a} = 4, \text{b} = 4); (\text{a} = 3, \text{b} = 3); (\text{a} = 4, \text{b} = 3)
B
(a=3,b=4);(a=4,b=3);(a=3,b=3)(\text{a} = 3, \text{b} = 4); (\text{a} = 4, \text{b} = 3); (\text{a} = 3, \text{b} = 3)
C
(a=4,b=4);(a=4,b=3);(a=3,b=4)(\text{a} = 4, \text{b} = 4); (\text{a} = 4, \text{b} = 3); (\text{a} = 3, \text{b} = 4)
D
(a=2,b=2);(a=2,b=3);(a=3,b=4)(\text{a} = 2, \text{b} = 2); (\text{a} = 2, \text{b} = 3); (\text{a} = 3, \text{b} = 4)