1. Engineering
  2. Computer Science
  3. please answer the following questions using the instructions given and...

Question: please answer the following questions using the instructions given and...

Question details
Please answer the following questions using the instructions given and provide some justification.
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 ThreadI 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 ThreadI and Thread2. Below are the codes for ThreadI and Thread2 Thread I Thread 2 while (I) ( while (I) ); l/loop here while Turn while (Turn 0) ; /loop here while Turn Code A Code B TurnI 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 I) 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. b. c. (4 points) What will be your starting assumption? (10 points) Can you infer from this assumption some contradiction? (3 points) After you show the contradiction, what will be your conclusion?
Solution by an expert tutor
Blurred Solution
This question has been solved
Subscribe to see this solution