Обход тупика можно интерпретировать как запрет входа в опасное состояние. Если ни одно из 4х условий не исключено, то вход в опасное состояние можно предотвратить при наличии у системы информации о последовательности запросов связанных с каждым параллельным процессом.
Доказано, что если вычисления находятся в любом не опасном состоянии, то существует, по крайней мере, одна последовательность состояний, которая обходит опасные состояния. Достаточно проверить, не приведет ли выделение запретного ресурса сразу же к опасному состоянию. Определение того является ли состояние опасным или нет, требует анализа последующих запросов процесса.
Обнаружение тупика.
Чтобы распознать тупик необходимо для каждого процесса определить сможет ли он снова развиваться когда-либо. Незаблокированный процесс через некоторое время освобождает свои ресурсы и завершается. Освобождение ранее занятых ресурсов может разбудить некоторые ранее заблокированные процессы, которые в свою очередь могут освободить другие занятые раньше ресурсы. Это может продолжаться до тех пор пока не останется незаблокированных процессов, либо какое то количество процессов все же останется заблокированным. В последнем случае начальное состояние S является состоянием тупика и все остальные процессы также находятся в состоянии тупика.
