Нужна разъяснение на алгоритме банкиров
-
27-09-2019 - |
Вопрос
просто быстрый запрос о безопасных / небезопасных состояниях в Dijkstra's Алгоритм банкира...
Если один из процессов в снимке системы (например, один ниже) уже имеет все его потребности, выполненные, и нет достаточных ресурсов для удовлетворения потребностей любого из других процессов, является системой в безопасном состоянии. ? Обычно я знаю, что мы предполагаем, что после того, как процесс получает свои необходимые ресурсы, он будет расторгнуть вскоре после и вернуть все ресурсы, но в том, что это предположение, когда мы рассчитаем состояние системы?
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 P2, и поэтому система безопасна, или система небезопасно, потому что в настоящее время не может быть выполнена ни одна из возможных запросов?
Решение
Система находится в безопасном состоянии, потому что процесс 1 может работать. Когда он заканчивается, будут достаточно копий ресурсов A и ресурса B для процесса 2 для завершения. Таким образом, существует «расписание», с помощью которого система может запускать свои процессы до завершения. Это означает, что это безопасно.