2017-01-11 3 views

ответ

0

Этот код не поддерживает ограниченное ожидание.

Вот сценарий, в котором процесс X заставит ждать бесконечно.

Предположим, Process X входит Critical Section и оставляет его. Переменная turn будет установлена ​​в y. Теперь для Process X, чтобы иметь возможность снова ввести Critical Section, переменная turn, должна быть установлена ​​в x, что не может случиться, пока Process Y входит в Critical Section.

Таким образом, только если эти два процесса X и Y, альтернативно ввести Critical Section, только тогда bounded waiting выполняется, в противном случае, нет.

0

При подготовке к рассмотрению OS, в соответствии с «операционной системы Основные понятия», ответ: «Это действительно поддерживает ограниченное ждет, но не поддерживает прогресс»

Если оба Pi и Pj хотят войти в критический раздел и поверните = i. Затем сначала введите Pi и Pj. После выхода Pi даже Pi хочет снова войти в критический раздел, Pj все еще может войти в критический раздел перед Pi снова вводится. Так что Pj больше всего ждет один поворот, чтобы войти в CS.

Он не поддерживает прогресс. Потому что, если Pj хочет ввести CS и поворачивать = i. Необходимо полагаться на Pi, который, вероятно, не хочет вводить CS прямо сейчас, чтобы установить turn = j.