
- •Глава 6 Взаимоблокировка и голодание
- •6.1. Принципы взаимного блокирования
- •Повторно используемые ресурсы
- •Расходуемые ресурсы
- •Условия возникновения взаимоблокировок
- •6.2. Предотвращение взаимоблокировок
- •Взаимоисключения
- •Удержание и ожидание
- •Отсутствие перераспределения
- •Циклическое ожидание
- •6.3. Устранение взаимоблокировок
- •Запрещение запуска процесса
- •Запрет выделения ресурса
- •А.) Глобальная структура данных
- •6.4. Обнаружение взаимоблокировок
- •Алгоритм обнаружения взаимоблокировки
- •Восстановление
- •6.5 Интегрированные стратегии разрешения взаимоблокировок
- •6.6. Задача об обедающих философах
- •6.7. Механизмы параллельных вычислений в unix
- •Сообщения
- •Разделяемая память
- •Семафоры
- •Сигналы
- •6.8. Прщийвы синхронизации потоков solaris
- •Блокировки взаимоисключений
- •Семафоры
- •Блокировки читатели/писатель
- •Переменные условий
- •6.9. Механизмы параллельных вычислений в windows 2000
- •6.10. Резюме, ключевые термины и контрольные вопросы
- •Контрольные вопросы
- •6.11. Рекомендуемая литература
- •6.12. Задачи
6.10. Резюме, ключевые термины и контрольные вопросы
Взаимоблокировка представляет собой блокирование множества процессов, которые либо конкурируют в борьбе за обладание системными ресурсами, либо поддерживают связь друг с другом. Такая блокировка оказывается постоянной, если операционная система не предпримет экстраординарных действий типа прекращения или отката одного или нескольких процессов. Взаимоблокировка может происходить при работе как с повторно используемыми, так и с расходуемыми ресурсами. Расходуемые ресурсы уничтожаются при захвате их процессом; примером такого ресурса может служить информация в буфере ввода-вывода. Повторно используемый ресурс, например канал ввода-вывода или область памяти, не истощается и не уничтожается при работе с ним.
При работе с взаимоблокировками имеется три основных подхода: предотвращение, обнаружение и устранение. Предотвращение путем устранения одной из необходимых причин взаимоблокировки гарантирует, что взаимоблокировка возникнуть не может. Обнаружение требуется, если операционная система всегда готова удовлетворить запрос на ресурс; в таком случае операционная система должна регулярно проверять наличие взаимоблокировки и предпринимать действия по ее разрешению, если таковая возникла. Устранение взаимоблокировок включает анализ каждого нового запроса для выяснения, не может ли его выполнение привести к взаимоблокировке, и удовлетворение запроса, только если взаимоблокировка невозможна.
Ключевые термины Алгоритм банкира Перераспределение Удержание и ожидание Взаимное исключение Повторно используемый Устранение Взаимоблокировка ресурс взаимоблокировок Голодание Предотвращение Циклическое ожидание Обнаружение взаимоблокировок взаимоблокировок Расходуемый ресурс |
Контрольные вопросы
Приведите примеры расходуемых и повторно используемых ресурсов.
Какие три условия являются необходимыми для осуществления взаимоблокировки?
Выполнение каких четырех условий приводит к возникновению взаимоблокировки?
Каким образом можно предотвратить условие удержания и ожидания?
Перечислите два способа предотвращения условия отсутствия перераспределения.
Каким образом можно предотвратить циклическое ожидание?
В чем заключается разница между предотвращением, обнаружением и устранением блокировок?
6.11. Рекомендуемая литература
Особый интерес представляет классическая статья [HOLT72], посвященная взаимоблокировкам, так же как и работа [COFF71]. Неплохой обзор по данной теме можно найти в [ISLO80] и [DIMI98]. Обнаружению взаимоблокировок посвящена работа [CORB96].
Механизмы синхронизации в UNIX SVR4, Solaris 2.x и Windows NT 4.0 достаточно полно описаны, соответственно, в [GRAY97], [GRAH95] и [RICH97].
COFF71 Coffman E., Elphick M., Shoshami A. System Deadlocks. — Computing Surveys,';
June 1971.
CORB96 Corbett J. Evaluating Deadlock Detection Methods for Concurrent Software. — IEEE Transactions on Software Engineering, March 1996.
DIMI98 Dimitoglou G. Deadlocks and Methods for Their Detection, Prevention, and Recovery in Modern Operating Systems. — Operating Systems Review, July 1998.
GRAH95 Graham J. Solaris 2,x: Internals and Architecture. — New York: McGraw-
Hill, 1995.
GRAY97 Gray J. Interprocess Communications in UNIX: The Nooks and ;
Grannies.— Upper Saddle River, NJ: Prentice Hall, 1997.
HOLT72 Holt R. Some Deadlock Properties of Computer Systems. — Computing Surveys, -
September 1972.
ISLO80 Isloor S., Marsland T. The Deadlock Problem: An Overview. — Computer, September 1980.
RICH97 Richter J. Advanced Windows. — Redmond, WA: Microsoft Press, 1997.