386 views
0 votes
0 votes
The first known correct software solution to the critical-section problem for two processes was developed by Dekker. The two processes, P0 and P1, share the following variables:
boolean $flag[2]$; /* initially false */
int turn;
The structure of process Pi (i == 0 or 1) is shown below. The other process is Pj (j == 1 or 0). Prove that the algorithm satisfies all three requirements for the critical-section problem.

do {
$flag[i]$ = true;
while ($flag[j]$) {
if (turn == j) {
$flag[i]$ = false;
while (turn == j)
; /* do nothing */
$flag[i]$ = true;
}
}
/* critical section */
turn = j;
$flag[i]$ = false;
/* remainder section */
} while (true);

Please log in or register to answer this question.

Related questions

0 votes
0 votes
0 answers
1
akash.dinkar12 asked Mar 20, 2019
511 views
Explain why implementing synchronization primitives by disabling interrupts is not appropriate in a single-processor system if the synchronization primitives are to be us...
0 votes
0 votes
1 answer
4