Интернет-справка ESET

Поиск Русский
Выберите тему

Взаимоблокировка

Взаимоблокировка — это ситуация, когда каждый вычислительный процесс ожидает ресурс, назначенный другому процессу. В такой ситуации ни один процесс не может быть выполнен, так как необходимый ресурс удерживается другим процессом, который также ожидает освобождения другого ресурса. Важно предотвращать взаимоблокировку еще до ее возникновения. Возникновение взаимоблокировки может быть обнаружено планировщиком ресурсов, который помогает операционной системе отслеживать все ресурсы, выделенные для разных процессов. Взаимоблокировка может возникнуть при одновременном выполнении четырех нижеперечисленных условий.

Отсутствие действия по вытеснению. Ресурс может быть освобожден только самим процессом, который удерживает его, после того как этот процесс завершит свою задачу.

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

Удержание и ожидание. В этом состоянии, если процесс удерживает один или несколько ресурсов и одновременно ожидает другие ресурсы, то такое удержание должно быть остановлено.

Круговое ожидание. Вводит тотальное упорядочивание всех типов ресурсов. Для кругового ожидания также требуется, чтобы каждый процесс запрашивал ресурсы в возрастающем порядке нумерации.

 

Существует три способа управления взаимоблокировкой.

Не допускать вхождения системы в состояние взаимоблокировки.

Допустить взаимоблокировку, а затем выполнить вытеснение, чтобы обработать ее при возникновении.

Если возникает взаимоблокировка, перезагрузить систему.