Описание тега 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