Безопасные и небезопасные состояния
В безопасном состоянии система может гарантировать, что все процессы закончат свою работу.
Рассмотрим систему:
· 10 экземпляров ресурса
· 3 процесса
Процесс А занял 3 экземпляра, но ему необходимо 9.
В этой ситуации можно спланировать так, сначала запустить процесс В, потом С и потом А.
Процессы заканчивают работу без тупиковой ситуации.
Рассмотрим другую ситуацию.
Процесс А занял 4 экземпляра.
Возникает небезопасное состояние.
В принципе процесс А может в какой то момент ресурс и тупика не возникнет.
Видно, что в этом случае не стоило давать ресурс процессу А.
Алгоритм "банкира" для одного вида ресурсов
"Банкира", потому что аналогия такая, клиенты-процессы, кредиты-ресурсы.
Рассмотрим систему:
Банкир может дать 10 кредитов (ресурсы).
К нему попеременно обращаются 4-ре клиента.
Алгоритм банкира:
· Банкиру поступает запрос от клиента на получение кредита
· Банкир проверяет, приводит ли этот запрос к небезопасному состоянию.
· Банкир в зависимости от этого дает или отказывает в кредите.