24517

Способы реализации взаимных исключений путем запрещения прерываний, использования блокирующих переменных, системных вызовов

Доклад

Информатика, кибернетика и программирование

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

Русский

2013-08-09

103.83 KB

6 чел.

Вопрос 22. Способы реализации взаимных исключений путем запрещения прерываний, использования блокирующих переменных, системных вызовов.

§4.4.2.Запрещение прерываний.

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

§4.4.3.Блокирующие переменные.

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

С каждым разделяемым ресурсом связывается двоичная переменная, которая принимает значение 1, если ресурс свободен (то есть ни один процесс не находится в данный момент в критической секции, связанной с данным процессом), и значение 0, если ресурс занят. На рис. 4.9 показан фрагмент алгоритма потока, использующего для реализации взаимного исключения доступа к разделяемому ресурсу D блокирующую переменную F(D). Перед входом в критическую секцию поток проверяет, свободен ли ресурс D. Если он занят, то проверка циклически повторяется, если свободен, то значение переменной F(D) устанавливается в 0, и поток входит в критическую секцию. После того, как поток выполнит все действия с разделяемым ресурсом D, значение переменной F(D) снова устанавливается равным 1.

Рис. 4.9. Реализация критической секции с использованием

блокирующих переменных

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

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

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

Для устранения этого недостатка в ОС Windows для работы с критическими секциями используются специальные системные вызовы: EnterCriticalSection() и LeaveCriticalSection().

При входе в критическую секцию (рис. 4.10) поток выполняет системный вызов EnterCriticalSection(), в рамках которого вначале выполняется проверка блокирующей переменной необходимого ресурса. Если ресурс занят, то циклический опрос далее не выполняется, а поток переводится в состояние ожидания освобождения ресурса D. Поток, который в это время использует ресурс D, после выхода из критической секции должен вызвать системную функцию LeaveCriticalSection(), в результате чего ресурс освобождается. ОС просматривает очередь ожидающих этот ресурс потоков и переводит поток, ожидающий событие D, в состояние «готовность».

Рис. 4.10. Реализация критической секции с использованием

системных функций


 

А также другие работы, которые могут Вас заинтересовать

45778. Понятие сбыта и сбытовой политики фирмы 21.61 KB
  Комплексность с другими элементами маркетингамикс скоординированность сочетание решений в сфере сбыта ценообразования коммуникаций сервиса и др. системность рассмотрение сбыта и остальных инструментов как элементов вызывающих синергетический эффект от их совместного применения гибкость готовность к пересмотру своих позиций в случае необходимости. Задача сбытовой политики управление конкурентоспособностью товара путем управлением каналами сбыта планирование длины ширины и типа посредников; организация и контроль...
45779. Интегрированные маркетинговые коммуникации: понятие и инструменты 40.09 KB
  Комплекс маркетинговых коммуникаций представляет собой единый комплекс коммуникационных компонентов объединяющий участников каналы и средства коммуникации и направленный на установление и поддержание взаимоотношений между организацией и маркетинговой средой в рамках достижения маркетинговый целей Маркетинговая коммуникация фирмы это комплексное воздействие фирмы на внутреннюю и внешнюю среду с целью создания благоприятных условий для стабильной прибыльной деятельности на рынке. Конечная цель любой стратегии маркетинговых коммуникаций...
45780. Социологические исследования в деятельности PR-специалиста 16.99 KB
  Количественные методы социологических исследований в PR:Наблюдение Наблюдение ещё один из видов методов социологического исследования. считает что наблюдение в социологии метод сбора информации путём непосредственного изучения социального явления в его естественных условиях. Особенности метода: Связь наблюдателя с объектом наблюдения.
45781. Элементы кристаллографии 159 KB
  Постоянная решётки, или, что то же самое, параметр решётки - размеры элементарной кристаллической ячейки кристалла. В общем случае, элементарная ячейка представляет собой параллелепипед с различными длинами рёбер, обычно эти длины обозначают как a, b, c. Но, в некоторых частных случаях кристаллической структуры, длины этих рёбер совпадают
45783. Региональные особенности территории Боснии и Герцеговины 701 KB
  Данная проблема является весьма актуальной и требует незамедлительного решения. Безработица в Боснии и Герцеговине составляет 20%, промышленное производство не достигло и 40% от довоенного уровня и развивается низкими темпами
45784. Сущность, цели и функции маркетинга 40.73 KB
  Нужды Исходной идеей лежащей в основе маркетинга является идея человеческих нужд. Потребности Второй исходной идеей маркетинга является идея человеческих потребностей. Состояния спроса и задачи маркетинга соответствующие этим состояниям 1.
45785. Маркетинговые исследования: понятие, предмет, объект и направления 17 KB
  Исследование рынка как такового наиболее распространенное направление маркетинговых исследований. Без информации о рынке практически невозможно принять правильные принципиальные решения по таким вопросам как выбор целевого рынка определение объема продаж прогнозирование и программирование рыночной деятельности. Объекты рыночных исследований конъюнктура тенденции и перспективы развития рынка; исследуются емкость рынка ее динамика структура география рынка уровень конкуренции барьеры вхождения на рынок и выхода возможности и риски....
45786. Маркетинговая информация: понятие, виды и методы сбора 24.81 KB
  Маркетинговые исследования это первичная маркетинговая информация которая собирается под определенную цель. МИ исследования могут быть проведены: Собственными силами компании Путем обращения в исследовательскую компанию к специалистам Частично собственными силами частично при помощи привлеченных специалистов. По соответствию целям исследования: первичная вторичная 7. Виды маркетинговых исследований: кабинетные исследования; полевые исследования.