Я искал информацию о Peterson's algorithm, но столкнулся с обращениями, в которых говорится, что это не удовлетворяет голод, а только тупик. Это правда? и если да, то может кто-то уточнить, почему это не так?Алгоритм Петерсона удовлетворяет голод?
алгоритм Петерсона:
flag[0] = 0;
flag[1] = 0;
turn;
P0: flag[0] = 1;
turn = 1;
while (flag[1] == 1 && turn == 1)
{
// busy wait
}
// critical section
...
// end of critical section
flag[0] = 0;
P1: flag[1] = 1;
turn = 0;
while (flag[0] == 1 && turn == 0)
{
// busy wait
}
// critical section
...
// end of critical section
flag[1] = 0;
Алгоритм использует две переменные, флаг и повернуть. Значение флага 1 означает, что процесс хочет войти в критический раздел. Переменный поворот содержит идентификатор процесса, в котором он находится. Вход в критическую секцию предоставляется для процесса P0, если P1 не хочет входить в его критическую секцию, или если P1 отдал приоритет P0, установив поворот на 0.
Если вы задаете вопрос, предоставьте дополнительную информацию для тех, кто не знаком с темой, о которой вы говорите. Какой алгоритм он есть? Что оно делает? Какова ваша конкретная проблема? Сообщество будет очень благодарно, если вы это сделаете. –