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. Реализация критической секции с использованием

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


 

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

35082. Туристско-рекреационные районы, их иерархия и типология 634.5 KB
  Чаще всего аттрактивиость обусловливается всем комплексом факторов и в этом случае такие комплексноаттрактивные районы особенно привлекательны для туристов и туристского бизнеса. Задача рекреационной географии и туристского рерсурсоведения заключается сейчас не только в том чтобы найти и оцепить новые ресурсы в местах до сих пор не освоенных туристской отраслью а обогатить туристский потенциал уже освоенных мест обустроенных туристскими учреждениями доступными для потенциальных туристов. Нахождение в них туристов носит скорее...
35083. ПРАВО ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ 562 KB
  ОБЩИЕ ПОЛОЖЕНИЯ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ. Понятие предмет и функции права интеллектуальной собственности. Система права интеллектуальной собственности. Источники права интеллектуальной собственности.
35084. Управление человеческими ресурсами. Конспект лекций 143.75 KB
  Структура персонала организации определяется по категориям – руководители специалисты служащие рабочие. Все категории персонала разделяются по профессиям специальностям квалификационным признакам и характеризуются специфическим местом в системе управления особенностями профессиональной подготовки. Разработка и проведение кадровой политики Оплата и стимулирование труда Групповое управление взаимоотношение в коллективе и с профсоюзами Социально психологические аспекты управления Принципы подбора и расстановки персонала Формы оплаты...
35085. Управлінське документування: Кредитно – модульний курс 292.5 KB
  Важливим завданням є створення і функціонування системи документів як робочого інструменту будьякої сфери. Зараз перед державою та суспільством постало багато нових завдань і значно зріс обсяг інформації стали жорстокішими вимоги до якості документів термінів їх виконання та доведення до виконавців.1 Призначення та класифікація документів Документ – це засіб закріплення різними способами на відповідному матеріалі інформації про факти події явища об’єктивної дійсності та розумову діяльність людини. Під час...
35086. Понятие и юридическая структура административного правонарушения в области таможенного дела 180 KB
  Законодательство различает посягательства в сфере таможенного дела в зависимости от различных степеней тяжести на преступления и проступки. Под административными правонарушениями в области таможенного деланарушениями таможенных правил понимаются именно проступки.1 КоАП России административным правонарушением признается противоправное виновное действие бездействие физического или юридического лица за которое КоАП России и законами субъектов РФ к административным правонарушениям в сфере таможенного дела – не применимо установлена...
35087. ВАЛЕОЛОГИЯ. Учебник для вузов 2.92 MB
  Так в части требований к уровню подготовленности выпускника педагогического вуза определены следующие условия: владение системой знаний о взаимосвязях физического психического и социального здоровья человека и общества; обладание организационнодеятельностными умениями необходимыми для самоанализа развития своих творческих способностей и повышения квалификации; осознание здоровья как ценности владение знаниями и умениями по охране здоровья и безопасности жизнедеятельности; представление о взаимодействии организма и среды месте...
35088. Формирование лихорадочных реакций в фило- и онтогенезе 74.33 KB
  Интеграция температурных сигналов и температуры самого гипоталамуса формирует эффекторные импульсы проходящие преимущественно по симпатическим нервам и определяющие состояние обмена веществ интенсивность периферического кровообращения дрожь одышку. Особое место в биохимии опухолей занимает изучение обмена углеводов и выработки энергии. Нарушение регуляции обмена веществ основного обмена ТИПИЧЕСКИЕ НАРУШЕНИЯ ОБМЕНА ВЕЩЕСТВ. НАРУШЕНИЯ РЕГУЛЯЦИИ ОБМЕНА ВЕЩЕСТВ Обмен веществ или метаболизм в организме определяется наследственными...
35089. Інформаційне забезпечення юридичної діяльності 3.25 MB
  Вступ В розділах посібника користувачі зможуть отримати поглибленні знання: зі створення інформаційних систем ділового та юридичного призначення у середовищі СУБД MS Access зі створювання електронних шаблонів з полями форм для юридичних та інших документів зі створення серійних документів на основі злиття табличних даних та зразка основного документа зі створювання та використовування макросів для автоматизації підготовки документів у MS Word та MS Excel. До виконання завдань необхідно обов'язково ознайомитися з теоретичними основами баз...
35090. Виды кишечных швов 21.68 KB
  В основе большинства операций на желудочно-кишечном тракте лежит кишечный шов. Под термином кишечный шов подразумевают все виды швов накладываемых на стенку полого органа желудочно-кишечного тракта пищевод желудок кишечник а также и на другие полые органы имеющие брюшинный покров мышечную оболочку подслизистый слой и слизистую оболочку жёлчный и мочевой пузырь. Главные требования к кишечному шву: кишечный шов должен быть прочным т. после наложения шва...