Этот код не поддерживает ограниченное ожидание.
Вот сценарий, в котором процесс X заставит ждать бесконечно.
Предположим, Process X
входит Critical Section
и оставляет его. Переменная turn
будет установлена в y
. Теперь для Process X
, чтобы иметь возможность снова ввести Critical Section
, переменная turn
, должна быть установлена в x
, что не может случиться, пока Process Y
входит в Critical Section
.
Таким образом, только если эти два процесса X
и Y
, альтернативно ввести Critical Section
, только тогда bounded waiting
выполняется, в противном случае, нет.
Не стесняйтесь на любые вопросы. –