Взаимное исключение, ограниченное ожидание и прогресс в примере с псевдокодом - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь определить, имеет ли следующий пример псевдокода взаимное исключение, ограниченное ожидание и прогресс:

enter image description here

Я считаю, что пример имеет взаимное исключение, поскольку переменные turn и flag гарантируют, что только один процесс может быть в CS одновременно.

Когда «поворот» меняется на int противоположного процесса внутри критической секции, есть гарантия, что процесс никогда не будет ждать дольше одного хода для входа в критическую секцию. Таким образом, образец ограничил ожидание.

В чем я не уверен, так это в прогрессе. Мне кажется, что здесь прогресс не гарантирован. Начальное значение turn = 1, поэтому, если поток 2 должен был выполняться первым, он не может быть выполнен. P1 должен был бы go сначала.

Могу ли я сказать, что в этом примере есть только взаимное исключение и ограниченное ожидание? Мой мыслительный процесс неверен для какой-либо из опций?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...