Answered step by step
Verified Expert Solution
Question
1 Approved Answer
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 that contains two threads of execution. In a simplistic way, it means that two routines Thread and Thread2 in Program P can be running concurrently. The integer variable Turn is initialized to 0 by Program P. The variable Turn is shared by the threads Thread and Thread2. Below are the codes for Threadl and Thread2. Thread Thread 2 while (1) { while (1) { while (Turn == 1); //oop here while Turn == while (Turn == 0; //loop here while Turn == 0 Code B Code A Turn = 1; Turn = 0; 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 I, this while loop keeps looping and Code A 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
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