Answered step by step
Verified Expert Solution
Question
1 Approved Answer
This is for an Operating Systems class: int flag [21i int turn; void init) flag [O] = turn 0 flag [1] = 0; // 1->
This is for an Operating Systems class:
int flag [21i int turn; void init) flag [O] = turn 0 flag [1] = 0; // 1-> thread wants to grab lock // whose turn? (thread 0 or 1?) void lock ( flag [self] = 1; turn = 1 - self; while ((flag[l-self1) && (turn1 self)) // self: thread ID of caller // make it other thread's turn ; spin-wait void unlock ) f flag Iself 0; // simply undo your intent 3. The inset alongside depicts code for the software only lock solution by Peterson and Dekker for enforcing critical sections. Assume that Thread 0 is created with variable self-0, and Thread 1 with set-1. a. Thread 0 runs first, calls lock), but is switched out after executing line flag[selfl-1. After this point which thread will enter the critical section first? Trace the steps. (3 points) b. If thread 0 is switched out after executing the second line in lock turn-1-self) which (3 points) thread will enter the critical section first? Once again, trace the stepsStep 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