Взаимоблокировка процессов

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

Ресурсы бывают выгружаемые и невыгружаемые, аппаратные и программные.

Выгружаемый ресурс- этот ресурс безболезненно можно забрать у процесса (например: память).

Невыгружаемый ресурс -этот ресурс нельзя забрать у процесса без потери данных (например: принтер).

Проблема взаимоблокировок процессов возникает при борьбе за невыгружаемый ресурсы.

Условия необходимые для взаимоблокировки:

  1. Условие взаимного исключения - в какой-то момент времени, ресурс занят только одним процессом или свободен.
  2. Условие удержания и ожидания - процесс, удерживающий ресурс может запрашивать новые ресурсы.
  3. Условие отсутствия принудительной выгрузки ресурса.
  4. Условие циклического ожидания - должна существовать круговая последовательность из процессов, каждый, из которого ждет доступа к ресурсу, удерживаемому следующим членом последовательности.