Question
Consider the following two threads, to be run concurrently in a shared memory (all variables are shared between the two threads). Thread A Thread B
Consider the following two threads, to be run concurrently in a shared memory (all variables are shared between the two threads). Thread A Thread B for i = 1 to 5 do for j = 1 to 5 do x = x + 1; x = x - 1;
Initially, x = 5. Assume that the code runs on a single-processor system on which load and store instructions are atomic. Also, x must first be loaded into a register before being incremented and stored back to memory afterwards.
Q: Enumerate all the possible values for x after both threads have completed? Explain your reasoning and show example sequences of instruction executions that would produce the result in your answer.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started