Нужны некоторые разъяснения по алгоритму банкиров - PullRequest
0 голосов
/ 18 мая 2010

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

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

  Allocated        Maximum     Available

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

EDIT

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

1 Ответ

1 голос
/ 18 мая 2010

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

...