Нужны некоторые разъяснения по алгоритму банкиров
Просто быстрый запрос о безопасных / небезопасных состояниях в алгоритме Дейкстры Банкира...
Если один из процессов в моментальном снимке системы (например, приведенный ниже) уже выполнил все свои потребности и не хватает ресурсов для выполнения потребностей любого из других процессов, находится ли система в безопасном состоянии? Обычно я знаю, что мы предполагаем, что, как только процесс получит необходимые ресурсы, он вскоре завершит работу и вернет все ресурсы, но учитывается ли это предположение при вычислении состояния системы?
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. Таким образом, существует "расписание", с помощью которого система может запускать свои процессы до завершения. Это означает, что это безопасно.