Использование алгоритма банкира

Зачем нам нужен алгоритм банкира, когда у нас есть блокировки, переменные завершения и семафоры. Поскольку блокировки создаются в linux в определенном порядке, не может быть никаких тупиков. Так в чем же заключается использование алгоритма банкира в такой ситуации.

1 ответ

Решение

Алгоритм Банкира используется для избежания тупиковой ситуации, проверяя, может ли распределение ресурсов привести к тупиковой ситуации в системе или нет, в то время как блокировка используется для решения проблемы критической секции, т. Е. Чтобы избежать попадания в критическую секцию более одного процесса. в то же время.

Сама блокировка не может избежать / предотвратить взаимоблокировку без сочетания с другими решениями взаимоблокировки.

И как комментарий deviantfan: нет ограничений на получение блокировки в большинстве операционных систем. Ниже приведен простой пример, в котором система может находиться в тупике, даже если использование блокировки действительно:

P1:....; Блокировка (FILEA); Блокировка (FILEB); .... разблокировать (файл A); разблокировать (FILEB); ....

P2:....; Блокировка (FILEB); блокировка (файл A);..... разблокировка (файл B); разблокировать (FILEA);....

Другие вопросы по тегам