2 プロセス ソリューション アルゴリズム 1 は次のとおりです。
turn = 0;
i = 0, j = 1;
do
{
while (turn != i) ; //if not i's turn , wait indefinitely
// critical section
turn = j; //after i leaves critical section, lets j in
//remainder section
} while (1); //loop again
相互排除が満たされていることを理解しています。P0 がクリティカル セクションにあるとき、P1 はクリティカル セクションを出るまで待機するためです。そして、P0 の更新ターンの後、P1 はクリティカル セクションに入ります。このアルゴリズムで進歩が満たされない理由がわかりません。
進行状況は、プロセスがクリティカル セクションに待機しているプロセスがない場合、プロセスは待機せずにクリティカル セクションに入ることができるはずです。
P0 の更新はクリティカル セクションを出た後に順番に行われるため、while ループで待機している P1 はクリティカル セクションに入ることができるはずです。なぜ進展がないのか教えてください。