90 2.32 Consider the following concurrent program: int s = 1; process foo [i while (true) (await (s } } S₁; (B = 8+1;) 1 to 2] { { 0) 8 = 8-1;) Chapter 2 Processes and Synchronization Assume s, is a statement list that does not modify shared variable s. (a) Develop proof outlines for the two processes. Demonstrate that the proofs of the processes are interference-free. Then use the proof outlines and the method of exclusion of configurations in Section 2.8 to show that s₁ and s₂ cannot execute at the same time and that the program is deadlock-free. (Hint: You will need to introduce auxiliary variables to the program and proof outlines. These variables should keep track of the location of each process.) (b) What scheduling policy is required to ensure that a process delayed at its first await statement will eventually be able to proceed? Explain.
The concurrent
Develop proof outlines for the two processes. Demonstrate that the proofs of the processes are interference-free. Then use the proof outlines and the method of exclusion of configurations in Section 2.8 to show that s, and s, cannot execute at the same time and that the program is deadlock-free. (Hint: You will need to introduce auxiliary variables to the program and proof outlines. These variables should keep track of the location of each process.) (b) What scheduling policy is required to ensure that a process delayed at its first await statement will eventually be able to proceed? Explain.
To prove that the concurrent program is interference-free and deadlock-free, we need to demonstrate that the processes cannot execute at the same time and that the program does not contain any circular wait conditions.
Trending now
This is a popular solution!
Step by step
Solved in 4 steps