Алгоритм банкиров

У меня есть вопрос об ответе на вопрос о алгоритме Дейкстры Банкира (вопрос представлен на снимке экрана ниже).

Я думал, что ответ на этот вопрос должен быть "да, это возможно". Я думаю, что как только пользователь 1 завершит работу, мы можем вытащить его и освободить его запрошенные ресурсы (10 A и 5 B) и вернуть его использованные ресурсы в пул доступных ресурсов, что поможет другим сделать это.

Вместо этого ответ (на снимке экрана под вопросом) гласит, что это невозможно. Где я неправ? Почему ответ, что это невозможно?

Ответ:

1 ответ

Решение

Я думаю, что это просто плохо сформулированный вопрос. В описании проблемы указано, что доступные ресурсы A = 10 а также B = 15,

В алгоритме Банкира считается "безопасным", если процесс может выделить максимум необходимых ресурсов. (процессу 1 нужно 10 А и 5 В)

Тогда ответ гласит, что доступные ресурсы A = 1 а также B = 2, Если вы посмотрите на все процессы, в настоящее время выделенные номера:

процесс 1 имеет ресурсы 2 A
процесс 2 имеет ресурсы 3 А
процесс 3 имеет ресурсы 2 A
процесс 4 имеет 2 А ресурса
---------------------------
общее количество используемых ресурсов = 9

становится ясно, что этот вопрос означал, что это были общие ресурсы системы, а не текущие доступные ресурсы. Таким образом, 9 A ресурсов используются, процесс 1 требует максимум 10 (у него 2), поэтому ему нужно еще 8; в этом случае ответ - нет, это небезопасно.

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