Я смотрю алгоритм Петерсона (взаимное исключение для 2-х процессов). Мой вопрос в том, что, если ни один процесс не вступил в критический раздел, и P0 хочет впервые войти в критический раздел, тогда P1 Флаг будет ложным, так как P0 входит в критический раздел? Условие того, что P0 входит в его критический раздел, зависит от того, что наш флаг для P1 является истинным.Взаимное исключение (алгоритм Петерсона)
Код:
//flag[] is boolean array; and turn is an integer
flag[0] = false;
flag[1] = false;
turn;
P0: flag[0] = true;
turn = 1;
while (flag[1] == true && turn == 1)
{
// busy wait
}
// critical section
...
// end of critical section
flag[0] = false;
P1: flag[1] = true;
turn = 0;
while (flag[0] == true && turn == 0)
{
// busy wait
}
// critical section
...
// end of critical section
flag[1] = false;
О, я получил его, не видел ожидающую часть, я думал, что он сказал, пока() {Критическая секция} Благодарим вас за очищение от этого, немой меня. – user2122810