Нужны некоторые разъяснения по алгоритму банкиров

Просто быстрый запрос о безопасных / небезопасных состояниях в алгоритме Дейкстры Банкира...

Если один из процессов в моментальном снимке системы (например, приведенный ниже) уже выполнил все свои потребности и не хватает ресурсов для выполнения потребностей любого из других процессов, находится ли система в безопасном состоянии? Обычно я знаю, что мы предполагаем, что, как только процесс получит необходимые ресурсы, он вскоре завершит работу и вернет все ресурсы, но учитывается ли это предположение при вычислении состояния системы?

  Allocated        Maximum     Available

    | A | B         | A | B      A | B
 ---+---+---     ---+---+---    ---+---
 P1 | 1 | 2      P1 | 1 | 2      1 | 3
 P2 | 5 | 3      P2 | 7 | 8    

РЕДАКТИРОВАТЬ

Просто чтобы прояснить мой вопрос: находится ли система в приведенном выше примере в безопасном состоянии или в небезопасном состоянии? Предполагаем ли мы, что запросы от P2 задерживаются до тех пор, пока P1 не вернет ресурсы, и в этот момент запросы P2 могут быть выполнены и, следовательно, система безопасна или система небезопасна, поскольку в настоящее время ни один из возможных запросов не может быть выполнен?

1 ответ

Решение

Система находится в безопасном состоянии, потому что Процесс 1 может работать. Когда он завершится, будет достаточно копий ресурса A и ресурса B для завершения процесса 2. Таким образом, существует "расписание", с помощью которого система может запускать свои процессы до завершения. Это означает, что это безопасно.

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