Описание тега bankers-algorithm

Это алгоритм распределения ресурсов и предотвращения тупиков. в котором указано максимальное количество экземпляров каждого типа ресурса, которое может потребовать процесс.

ОПРЕДЕЛЕНИЕ:

" Алгоритм Банкира - это алгоритм распределения ресурсов и предотвращения тупиковых ситуаций, разработанный Эдсгером Дейкстрой, который проверяет безопасность, моделируя распределение заранее определенных максимально возможных объемов всех ресурсов, а затем выполняет проверку" s-состояния "для проверки возможных условий тупика для все другие незавершенные действия, прежде чем решить, следует ли разрешить продолжение выделения "- источник в Википедии.

ПОЧЕМУ ИМЯ БАНКИРА?

"Как и другие алгоритмы, алгоритм Банкира имеет некоторые ограничения при реализации. В частности, ему необходимо знать, какой объем каждого ресурса может запросить процесс. В большинстве систем эта информация недоступна, что делает невозможным реализацию алгоритма Банкира ", - источник в Википедии.

ДИЗАЙН

"Алгоритм Банкира запускается операционной системой всякий раз, когда процесс запрашивает ресурсы. Алгоритм избегает тупиковой ситуации, отклоняя или откладывая запрос, если он определяет, что принятие запроса может перевести систему в небезопасное состояние (такое, в котором может возникнуть тупик). Когда новый процесс входит в систему, он должен объявить максимальное количество экземпляров каждого типа ресурсов, которое не может превышать общее количество ресурсов в системе. Кроме того, когда процесс получает все запрошенные ресурсы, он должен вернуть их за конечный промежуток времени "- источник в Википедии.

ОГРАНИЧЕНИЕ

"Как и другие алгоритмы, алгоритм Банкира имеет некоторые ограничения при реализации. В частности, ему необходимо знать, какой объем каждого ресурса может запросить процесс. В большинстве систем эта информация недоступна, что делает невозможным реализацию алгоритма Банкира ", - источник в Википедии.

Можно ссылаться на следующие ссылки:

Пример вывода

Enter the number of resources:4

Enter the number of processes:5

Enter  Claim Vector:8 5 9 7

Enter Allocated Resource Table:
2 0 1 1
0 1 2 1
4 0 0 3
0 2 1 0
1 0 3 0

Enter Maximum Claim table:
3 2 1 4
0 2 5 2
5 1 0 5
1 5 3 0
3 0 3 3

The Claim Vector is:    8   5   9   7
The Allocated Resource Table:
2   0   1   1
0   1   2   1
4   0   0   3
0   2   1   0
1   0   3   0

The  Maximum Claim Table:
3   2   1   4
0   2   5   2
5   1   0   5
1   5   3   0
3   0   3   3

Allocated resources:    7   3   7   5
Available resources:    1   2   2   2

Process3 is executing

The process is in safe state
Available vector:   5   2   2   5
Process1 is executing

The process is in safe state
Available vector:   7   2   3   6
Process2 is executing

The process is in safe state
Available vector:   7   3   5   7
Process4 is executing

The process is in safe state
Available vector:   7   5   6   7
Process5 is executing

The process is in safe state
Available vector:   8   5   9   7