Безопасные и небезопасные состояния

В безопасном состоянии система может гарантировать, что все процессы закончат свою работу.

Рассмотрим систему:

· 10 экземпляров ресурса

· 3 процесса

 

Процесс А занял 3 экземпляра, но ему необходимо 9.

В этой ситуации можно спланировать так, сначала запустить процесс В, потом С и потом А.

Процессы заканчивают работу без тупиковой ситуации.

 

Рассмотрим другую ситуацию.

Процесс А занял 4 экземпляра.

Возникает небезопасное состояние.

В принципе процесс А может в какой то момент ресурс и тупика не возникнет.

Видно, что в этом случае не стоило давать ресурс процессу А.

 

Алгоритм "банкира" для одного вида ресурсов

"Банкира", потому что аналогия такая, клиенты-процессы, кредиты-ресурсы.

Рассмотрим систему:

Банкир может дать 10 кредитов (ресурсы).

К нему попеременно обращаются 4-ре клиента.

Алгоритм банкира:

· Банкиру поступает запрос от клиента на получение кредита

· Банкир проверяет, приводит ли этот запрос к небезопасному состоянию.

· Банкир в зависимости от этого дает или отказывает в кредите.