Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
У. Столлингс ГЛАВА 6 Межзадачное взаимодействие...doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
3.19 Mб
Скачать

6.10. Резюме, ключевые термины и контрольные вопросы

Взаимоблокировка представляет собой блокирование множества процессов, которые либо конкурируют в борьбе за обладание системными ресурсами, либо поддерживают связь друг с другом. Такая блокировка оказывается постоянной, если операционная система не предпримет экстраординарных действий типа прекращения или отката одного или нескольких процессов. Взаимоблокировка может происходить при работе как с повторно используемыми, так и с расходуемыми ресурсами. Расходуемые ресурсы уничтожаются при захвате их про­цессом; примером такого ресурса может служить информация в буфере ввода-вывода. Повторно используемый ресурс, например канал ввода-вывода или область памяти, не истощается и не уничтожается при работе с ним.

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

Ключевые термины

Алгоритм банкира Перераспределение Удержание и ожидание Взаимное исключение Повторно используемый Устранение Взаимоблокировка ресурс взаимоблокировок Голодание Предотвращение Циклическое ожидание Обнаружение взаимоблокировок

взаимоблокировок Расходуемый ресурс

Контрольные вопросы

  1. Приведите примеры расходуемых и повторно используемых ресурсов.

  2. Какие три условия являются необходимыми для осуществления взаимоблокировки?

  3. Выполнение каких четырех условий приводит к возникновению взаимоблокировки?

  4. Каким образом можно предотвратить условие удержания и ожидания?

  5. Перечислите два способа предотвращения условия отсутствия перераспределения.

  6. Каким образом можно предотвратить циклическое ожидание?

  7. В чем заключается разница между предотвращением, обнаружением и устранением блокировок?

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.