Электронный учебник:


Курс лекций:


Дополнительно:

Практикум:



Наши хостеры:

Тупики

При некотором стечение обстоятельств потоки могут блокировать друг друга, такую ситуацию называют тупиком (или дедлокам-deadlock). Пусть двум потокам, принадлежащим разным процессам нужны принтер и последовательный порт. Поток А запрашивает сначала принтер, затем порт. Предположим ОС назначила потоку А принтер, установила связанную с принтером переменную. Затем поток А был прерван. Поток Б выполнил запрос получения ком порта. При выполнение следующей команды был заблокирован, так как принтер занят другим потоком. Управления вновь получил поток А, сделал попытку занять порт и был заблокирован. В такой тупиковой ситуации потоки могут находиться бесконечно.

Система должна предоставить администратору средства с помощью которой он мог бы распознать тупик. Тупики могут быть предотвращены на стадии выполнения программ.

Кроме того существуют методы основанные на ведение таблиц распределения ресурсов и таблиц запросов к занятым ресурсам. Анализ таблиц позволяет обнаружить взаимные блокировки.

предыдущаяследующая