-6

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

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

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

enter image description here

Ответ: enter image description here

+1

Я бы предпочел, чтобы вы переписали вопрос своими словами. Кроме того, не помещайте теги, которые не имеют значения. Это не имеет ничего общего с Java или C. –

+1

Что вы от нас хотите? Для просмотра снимка экрана ... ???? –

+0

Какова ваша проблема (помимо вашей домашней работы)? – Aboutblank

ответ

2

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

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

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

процесса 1 имеет 2 A Ресурсное
процесс 2 имеет 3 A ресурсы
процесс 3 имеет 2 A ресурсы
процесс 4 имеет 2 А ресурсы
---- -----------------------
всего Ресурсы в использовании = 9

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