Question: Exercise 2 (25 points) Proof by contradiction Consider a program P that contains two threads of execution. In a simplistic way, it means that two

 Exercise 2 (25 points) Proof by contradiction Consider a program P

Exercise 2 (25 points) Proof by contradiction Consider a program P that contains two threads of execution. In a simplistic way, it means that two routines Thread1 and Thread2 in Program P can be running concurrently. The integer variable Turn is initialized to O by Program P. The variable Turn is shared by the threads Thread1 and Thread2. Below are the codes for Thread1 and Thread2. Thread 1 Thread 2 while (1) { while (1) { while (Turn != 1);//loop here while Turn != 1 while (Turn != 0);//loop here while Turn != 0 Code A Code B Turn = 0; Turn = 1; } } Code A and Code B are blocks of multiple instructions. Pay attention: Code A and Code B are not part of the while (Turn !=..) loops. For example, if (Turn == 1) for Thread 2, this while loop keeps looping and Code B will not run unless the variable Turn becomes 0. We assume that Code A and Code B do not modify the variable Turn. Answer the following questions: a) (2 points) When instructions of Code A are running, what is the value of Turn? b) (2 points) When instructions of Code B are running, what is the value of Turn? c) (4 points) Can Code A and Code B be running simultaneously? Answer and justify your answer d) Use a proof by contradiction to show that Code A and Code B CANNOT be running simultaneously. For this proof, I suggest to follow these steps: a. (4 points) What will be your starting assumption? b. (10 points) Can you infer from this assumption some contradiction? C. (3 points) After you show the contradiction, what will be your conclusion

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!