Алгоритм решения банкира для заданного состояния системы

Завтра утром у меня финальный тест по курсу ОС, и я застрял с проблемой.

Скажем, у нас есть 4 процесса в нашей системе: P1, P2, P3, P4 и 4 различных ресурса: R1, R2, R3, R4. Текущее состояние системы показано на этом рисунке.

введите описание изображения здесь

Вопрос в том, находится ли система в тупике или нет? Я решил несколько подобных проблем, поэтому, я думаю, система находится в тупике, потому что не хватает доступных ресурсов (например, P4 запрашивает 2 экземпляра R3, но в доступном списке существует только 1 ресурс R3).

Я немного запутался, потому что ответ моего специалиста таков: система не находится в тупике, а процессы выполняются в следующем порядке: P4->P3->P1->P2

Какое решение правильно?

Благодарю.

4 ответа

Решение

Ваш инструктор правильный. В частности, P4 уже имеет (1 0 1 1) и, следовательно, нуждается только в (0 0 1 0), который может быть легко удовлетворен доступными ресурсами. После того, как P4 обслуживается ресурсами, он завершает и освобождает все, что использовал (включая текущее распределение). Затем ОС может отправить эти ресурсы оставшимся процессам (в правильной последовательности), таким образом, без блокировки.

Безопасная последовательность p3, p4, p1, p2
p1 неверно
p2 неверно
p3 правда всего 5555 - выполнить 1-е
p4 правда всего 6566 - выполнить 2-е
продолжение цикла
p1 правда всего 7678 - выполнить 3-е
p2 верно всего 9788 - выполнить 4

безопасная последовательность (p3,p4,p1,p2)

Согласно приведенному здесь объяснению, P4->P3->P2->P1 не будет работать, потому что P2 сделает R1 0, и это может привести к тупиковой ситуации, когда P2 зацикливается или недоступен в течение длительного времени, P1 ожидает всего этого. время как R1 равно нулю.?

Так как после того, как P3 и P4 сделаны, Доступная матрица становится 3334, что также достаточно для удовлетворения потребностей P2?

Я думаю, что система находится в тупике, поскольку запрос p4 не может быть удовлетворен. Мы не смотрим на распределение, мы смотрим на запрос. Если оно не удовлетворено, то это тупик. Помните, что процессам разрешено удерживать одни ресурсы, запрашивая другие.

Другие вопросы по тегам