Алгоритм предотвращения тупиков - PullRequest
0 голосов
/ 19 сентября 2019

Я нахожу весь алгоритм для решения Deadlock, но я просто нахожу Алгоритм Банкира.Где я могу найти другой алгоритм для решения этой проблемы?Пожалуйста, помогите мне.

1 Ответ

1 голос
/ 19 сентября 2019

Предотвращение тупиковых ситуаций - это не то, что может быть изолировано от отдельных (меньших) частей более крупной системы;он должен быть системным (применяется ко всей системе меньших частей).

Мне известны только два подхода:

a) "глобальный порядок блокировки".Основная идея заключается в том, чтобы все замки были приобретены в порядке;что требует установления порядка для всех возможных блокировок во всей системе.Например;если одна часть системы имеет блокировку, защищающую очередь FIFO, а другая часть системы имеет массив с блокировкой для каждой записи массива;тогда вы можете решить, что порядок «Блокировка очереди FIFO; затем блокировка записи массива в порядке индекса массива».

b) Нет блокировок.Это может быть так просто, как не иметь никаких потоков;или такой сложный, как использование модели «ничего не передается, передача сообщений» (где каждый фрагмент данных принадлежит определенному потоку, и никакие другие потоки не могут получить к нему доступ, а все остальные потоки должны попросить владельца действовать от их имени).

...