GATE CS 2024 Set 1 — Question 40
Go beyond PYQs with Success TrackerAI-powered personalised practice and doubt support. Unlimited practice on eligible plans; AI usage limits apply.MCQ+2 / -0.67MediumRace Conditions & Critical SectionProcess SynchronizationOperating System
Operating System → Process Synchronization → Race Conditions & Critical Section
Last updated
Question
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.
Which one of the following options lists all the possible combinations of values of a and b after both T1 and T2 finish execution?
| T1 | T2 |
|---|---|
| a = a + 1; | b = 2 * b; |
| b = b + 1; | a = 2 * a; |
Correct answer
(A) (a = 4, b = 4); (a = 3, b = 3); (a = 4, b = 3)
Solution
Let the statements be:
T1:
Constraint: must execute before .T2:
Constraint: must execute before .Initially .Analysis of variable :
Operations on are and .
Operations on are and .
We must respect thread order ( and ).
Total permutations of 4 instructions is .
Combined with thread constraints and , we get cycle: . Impossible.Thus, the set of possible values is .
T1:
Constraint: must execute before .T2:
Constraint: must execute before .Initially .Analysis of variable :
Operations on are and .
- If order is : . ()
- If order is : . ()
Operations on are and .
- If order is : . ()
- If order is : . ()
We must respect thread order ( and ).
Total permutations of 4 instructions is .
1.: , . Result: .
2.: , . Result: .
3.: , . Result: .
4.: , . Result: .
5.: , . Result: .
6.: , . Result: .
Possible outcomes: .Note: The outcome requires (for ) and (for ).Combined with thread constraints and , we get cycle: . Impossible.Thus, the set of possible values is .
Continue learning with Success Tracker
A step still unclear? Work through it with support
Use Success Tracker to ask about the reasoning, then try another GATE CS question to check your understanding.
AI-powered practice· Unlimited practice on eligible plans
- PYQs with solutions
- Attempt available previous-year questions, then compare your reasoning with the worked solution. Coverage varies by stream.
- Practice that adapts
- Choose a topic, work on weaker areas and bookmark questions to revisit. Your attempts feed your progress tracking.
- AI doubt support
- Ask follow-up questions about a step or concept while practising, instead of stopping at the final answer.
Unlimited practice is available on eligible plans. Free practice and AI usage have limits; check the current plan allowances before choosing.
This page stays readable without an account. AI responses can be wrong; check them against the solution and source material.
More questions on Process Synchronization
2026 Set 2 Q23Which one of the following CPU scheduling algorithms cannot be preemptive?2026 Set 1 Q29With respect to deadlocks in an operating system, which of the following statements is/are FALSE?2026 Set 1 Q31In the context of relational database normalization, which of the following statements is/are true?2026 Set 1 Q35Consider a system consisting of instances of a resource , being shared by 5 processes.…2026 Set 2 Q51Consider three processes P1, P2, and P3 running identical code, as shown in the pseudocode below. A…