<<
>>

Переменные блокировки

Теперь попробуем найти программное решение. Рассмотрим одну совместно используемую переменную блокировки, изначально равную 0. Если процесс хочет попасть в критическую секцию, он предварительно считывает значение переменной блокировки.
Если переменная равна 0, процесс изменяет ее на 1 и входит в критическую секцию. Если же переменная равна 1, то процесс ждет, пока ее значение сменится на 0. Таким образом, 0 означает, что ни одного процесса в критической секции нет, а 1 свидетельствует, что какой-либо процесс уже находится в критической секции.

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

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

<< | >>
Источник: Э. ТАНЕНБАУМ, А. ВУДХАЛЛ. ОПЕРАЦИОННЫЕ СИСТЕМЫ Разработка и реализация 3-е издание. 2007

Еще по теме Переменные блокировки:

  1. ТУННЕЛЬ ЗАПЯСТНЫЙ (БЛОКИРОВКА) См. статью ЗАПЯСТЬЕ.
  2. Физическая блокировка
  3. Эмоциональная блокировка
  4. Духовная блокировка
  5. Ментальная блокировка
  6. ПЕРЕМЕННАЯ ПРОМЕЖУТОЧНАЯ
  7. ПЕРЕМЕННАЯ
  8. ПЕРЕМЕННАЯ ЗАВИСИМАЯ
  9. Блокировка привязанности и интимности
  10. ПЕРЕМЕННАЯ НЕЗАВИСИМАЯ
  11. ПЕРЕМЕННАЯ КОНТРОЛИРУЕМАЯ
  12. Пять переменных У. Мичела.
  13. Сопротивление переменам в нас
  14. Теория «типовых переменных» и индивидуального выбора (Т. Парсонс).
  15. Ситуация действия и «Pattern Variables» («типовые переменные»)
  16. Сознание — первый шаг к выздоровлению и переменам
  17. Самоодобрение и самопринятие - ключ к положительным переменам в нашей жизни
  18. ПЕРФОРАЦИЯ
  19. РЕГУРГИТАЦИЯ