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