Вопрос

просто быстрый запрос о безопасных / небезопасных состояниях в 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 для завершения. Таким образом, существует «расписание», с помощью которого система может запускать свои процессы до завершения. Это означает, что это безопасно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top