Двухфазное блокирование

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

Часто используемый при этом подход называется двухфазным блокированием. В первой фазе процесс пытается заблокировать по одной все необходимые ему записи. Если все проходит успешно, он приступает ко второй фазе, осуществляя свои обновления и снимая блокировку. При этом в первой фазе не проводится никакой реальной работы.

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

Но эта стратегия в общем виде неприменима. К примеру, в системах реального времени и системах управления процессами остановка процесса на полпути только из-за недоступности ресурса и его повторный запуск с самого начала просто недопустимы. Нельзя также перезапускать процесс, если он считал с сети или запустил в сеть сообщение, обновил файлы и сделал что-нибудь еще, что не может быть безопасно повторено еще раз. Алгоритм работает только в том случае, когда программист очень тщательно все подготовил таким образом, что программу можно остановить в любой точке первой фазы и запустить заново. Многие программы не могут быть структурированы таким образом.

6.7.2.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Двухфазное блокирование:

  1. Периодическое блокирование у маниакально-депрессивной личности
  2. Статья 279. Блокирование транспортных коммуникаций, а также захват транспортного предприятия
  3. Независимо от места задержания
  4. Задержание вооруженных правонарушителей, передвигающихся на транспорте в населенном пункте
  5. Статья 362. Несанкционированные действия с информацией, обрабатывается в электронно-вычислительных машинах (компьютерах), автоматизированных системах, компьютерных сетях или сохраняется на носителях такой информации, совершенные лицом, имеет право доступа к ней
  6. Взаимоотношения между чакрами 2А и 2Б.
  7. Задержание вооруженных правонарушителей в общественном месте
  8. АФФИЛИАЦИЯ
  9. Профилактика и преодоление профессиональной деформации сотрудников органов правопорядка.
  10. ИЗОЛЯЦИЯ
  11. Задержание вооруженных правонарушителей, находящихся в укрытиях
  12. Надежда