Использование алгоритма банкира
Зачем нам нужен алгоритм банкира, когда у нас есть блокировки, переменные завершения и семафоры. Поскольку блокировки создаются в linux в определенном порядке, не может быть никаких тупиков. Так в чем же заключается использование алгоритма банкира в такой ситуации.
1 ответ
Алгоритм Банкира используется для избежания тупиковой ситуации, проверяя, может ли распределение ресурсов привести к тупиковой ситуации в системе или нет, в то время как блокировка используется для решения проблемы критической секции, т. Е. Чтобы избежать попадания в критическую секцию более одного процесса. в то же время.
Сама блокировка не может избежать / предотвратить взаимоблокировку без сочетания с другими решениями взаимоблокировки.
И как комментарий deviantfan: нет ограничений на получение блокировки в большинстве операционных систем. Ниже приведен простой пример, в котором система может находиться в тупике, даже если использование блокировки действительно:
P1:....; Блокировка (FILEA); Блокировка (FILEB); .... разблокировать (файл A); разблокировать (FILEB); ....
P2:....; Блокировка (FILEB); блокировка (файл A);..... разблокировка (файл B); разблокировать (FILEA);....