Question: 5 (5.18) Show that Peterson's algorithm (Fig 5.11) is bounded-fair; i.e., a thread Cannot be delayed indefinitely on any delay condition that occurs with indefinite



5 (5.18) Show that Peterson's algorithm (Fig 5.11) is bounded-fair; i.e., a thread Cannot be delayed indefinitely on any delay condition that occurs with indefinite repetition. In particular, show that any thread waiting to enter its critical section will be delayed no longer than the time it takes for the other thread to enter and leave its own critical section once. 1 Svstem 3 int favoredThread1 4 boolean tlwantsToEnterfalse 5 boolean t2WantsToEnter- false; 7 startThreads (); // initialize and launch both threads 9 Thread! v 10 11 void main() 12 13 while Idone) 14 15 16 17 18 19 20 21 tlWantsToEnter - true; while ( t2WantsToEnter && favoredThread == 2 // critical section code tlWantsToEnter - false 23 24 25 26 // end while 27 28 // end Thread T1 // code outside critical section 30 Thread T2 31 32 void main () 34 35 36 37 while done) t2WantsToEnt er true; 39 40 41 42 43 favoredThread - 1; while ( tiWantsToEnter && favoredThread-= 1 ); // critical section code t2WantsToEnter false; // code outside critical section 45 46 47end while 48 49 \ I end Thread T2 Figure 5.11 | Petersons Algorithm for mutual exclusion. (Part 2 of 2.) 5 (5.18) Show that Peterson's algorithm (Fig 5.11) is bounded-fair; i.e., a thread Cannot be delayed indefinitely on any delay condition that occurs with indefinite repetition. In particular, show that any thread waiting to enter its critical section will be delayed no longer than the time it takes for the other thread to enter and leave its own critical section once. 1 Svstem 3 int favoredThread1 4 boolean tlwantsToEnterfalse 5 boolean t2WantsToEnter- false; 7 startThreads (); // initialize and launch both threads 9 Thread! v 10 11 void main() 12 13 while Idone) 14 15 16 17 18 19 20 21 tlWantsToEnter - true; while ( t2WantsToEnter && favoredThread == 2 // critical section code tlWantsToEnter - false 23 24 25 26 // end while 27 28 // end Thread T1 // code outside critical section 30 Thread T2 31 32 void main () 34 35 36 37 while done) t2WantsToEnt er true; 39 40 41 42 43 favoredThread - 1; while ( tiWantsToEnter && favoredThread-= 1 ); // critical section code t2WantsToEnter false; // code outside critical section 45 46 47end while 48 49 \ I end Thread T2 Figure 5.11 | Petersons Algorithm for mutual exclusion. (Part 2 of 2.)
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
