Операционная система UNIX. Руководство программиста

Управление тупиковыми ситуациями


Система блокировки сегментов позволяет в некоторой степени выявлять и обходить тупиковые ситуации. Эти средства обеспечивают тот же уровень защиты, что и соответствующая стандарту /usr/group функция lockf(3C). Средства обнаружения тупиковых ситуаций работают лишь для процессов, блокирующих сегменты и файлы на одном компьютере. Тупиковые ситуации потенциально могут встречаться только тогда, когда операционная система собирается приостановить процесс, обратившийся к системе блокировки. Система осуществляет поиск циклов в графе процессов, зависимых по блокировке. Если появится цикл, это приведет к бесконечному ожиданию возможности заблокировать сегмент. При выявлении подобной ситуации попытка блокировки заканчивается неудачей и значение errno будет равно соответствующему номеру ошибки, связанному с тупиковой ситуацией. Если нужно, чтобы процесс не использовал системный способ обнаружения тупиковых ситуаций, следует при блокировке вместо F_GETLKW использовать F_GETLK.



Содержание раздела