Предложите стратегию обнаружения и устранения дедлока в операционной системе для набора процессов, которые захватывают ресурсы в разном порядке; приведите пример алгоритма предотвращения дедлока и обсудите его влияние на производительность и справедливость распределения ресурсов

6 Ноя в 08:38
3 +3
0
Ответы
1
Стратегия обнаружения и устранения дедлока (кратко, по шагам)
1) Обнаружение (периодически или при подозрении):
- Построить wait‑for‑граф G=(V,E)G=(V,E)G=(V,E): вершины VVV — процессы, есть дуга Pi→PjP_i\to P_jPi Pj , если PiP_iPi ждёт ресурс, захваченный PjP_jPj .
- Дедлок существует тогда и только тогда, когда в GGG есть ориентированный цикл.
- Проверка цикла выполняется DFS или алгоритмом топологической сортировки за время O(∣V∣+∣E∣)O(|V|+|E|)O(V+E).
2) Устранение (при найденном цикле):
- Выбрать «жертву(ы)» и завершить/откатить их, либо
- Принудительно отобрать ресурсы (preemption) и перераспределить, либо
- Откатить до контрольной точки (checkpoint/rollback).
- Выбор жертвы можно формализовать функцией стоимости: например costi=w1⋅Ri+w2⋅Ti−w3⋅Picost_i = w_1\cdot R_i + w_2\cdot T_i - w_3\cdot P_icosti =w1 Ri +w2 Ti w3 Pi , где RiR_iRi — объём удерживаемых ресурсов, TiT_iTi — время работы, PiP_iPi — приоритет; минимизируем costicost_icosti .
Пример алгоритма предотвращения дедлока: ресурсная иерархия (ordering) и альтернативно — алгоритм банкира
A) Ресурсная иерархия (простой алгоритм предотвращения)
- Назначьте каждой типу ресурса уникальный порядок (номер) и требуйте, чтобы каждый процесс запрашивал ресурсы только в строго возрастающем порядке номеров.
- Это нарушает условие circular wait ⇒ дедлок невозможен.
Плюсы: простой, малая накладная; достаточно для многих систем.
Минусы: снижает гибкость программирования, может увеличивать время ожидания (процессы вынуждены ждать «правильного» порядка), возможны проблемы со справедливостью (долгоживущие процессы блокируют других).
B) Banker's algorithm (избежание)
- Требует заранее известной максимальной потребности каждого процесса Max[i]Max[i]Max[i].
- Под запросом ресурса система симулирует выделение и проверяет, останется ли система в безопасном состоянии (существует последовательность процессов, которые могут завершиться). Если безопасно — даёт ресурсы, иначе — отклоняет запрос.
- Безопасность проверяется safety‑алгоритмом за примерно O(n2⋅m)O(n^2\cdot m)O(n2m) (где nnn — число процессов, mmm — типов ресурсов).
Плюсы: предотвращает дедлок без принудительных убийств, гарантирует завершение в безопасных последовательностях.
Минусы: требует знаний о максимальных запросах, вычислительная накладная при каждой проверке, консервативность (снижает параллелизм и загрузку), возможна задержка запросов и косвенная несправедливость (запросы отклоняются).
Влияние на производительность и справедливость
- Detection + Recovery:
- Производительность: высокая начальная загрузка (нет излишних блокировок), но периодическое обнаружение и восстановление (убийство/откат) влечёт дополнительные потери; восстановление дорогостояще.
- Справедливость: при выборе жертв возможна несправедливость/голодание; нужно эвристики для минимизации ущерба.
- Resource ordering:
- Производительность: низкие накладные на проверку, но может снижать конкурентность (процессы вынуждены ждать по порядку).
- Справедливость: простой и предсказуемый, но длительные удержания нижних ресурсов могут вредить другим процессам.
- Banker's algorithm:
- Производительность: проверка безопасности снижает пропускную способность и повышает задержки; использует больше CPU при частых запросах.
- Справедливость: избегает убийств, но может систематически отклонять запросы больших процессов, что даёт эффект неблагоприятного отношения к «жадным» процессам.
Рекомендация практического применения
- В общем‑назначенной ОС: использовать detection+recovery (детектирование через wait‑for‑граф и мягкие механизмы восстановления: откат/принятие жертвы) + доп. политика выбора жертв для минимизации несправедливости.
- В реальном времени/критичных системах: предпочесть предотвращение (ordering) или Banker's (если известны максимумы) ради гарантированного отсутствия дедлоков, несмотря на возможное снижение параллелизма.
6 Ноя в 08:56
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир