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

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


 

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

26930. Форма политического режима 8.46 KB
  форма политического режима совокупность методов осуществления власти государством итоговое состояние в обществекоторое складывается в результате взаимодействия и противоборства различных политических сил и функционирования всех политических институтов. Основной критерий для классификации режимовдемократичность власти отражает ли власть мнение всего народа в целом или только узко определенной группы общества. Характерные черты: отказ от полного контроля над обществом; отсутствие единой идеологии; отчуждение народа от властиносителем...
26931. Особенности федеративного устройства РФ 11.56 KB
  Обычно федерации делятся на территориальныепо принципу объединения территорий и национальныепо принципу объединения различных наций при чем вторые обладают более широким кругом полномочийправ и свобод по сравнению с территориальными федерациями. 5 КРФ: состоит из республик краев областей городов федерального значения автономной области автономных округов равноправных субъектов Российской Федерациивсего их 83 Субъекты федерации группируются в:8 федеральных округовполномочные представители президента в каждом округечлен...
26932. государственные органы 9.45 KB
  Принципы деятельности:народовластие гуманизм федерализм разделение властей законностьверховенство КРФ и ФЗ над иными НПА; приоритет прав и свобод человека и гражданина; равный доступ граждан к государственной службе в соответствии со способностями и профессиональной подготовкой; обязательность для государственных служащих решений принятых вышестоящими государственных органами и руководителями в пределах их полномочий и на основе законодательства РФ; гласность в осуществление государственной службы; ответственность служащих за принимаемые...
26933. Теория разделения властей.законолательная власть 9.52 KB
  локкзаконодательная власть занимала доминирующее положение по сравнению с остальными ветвями власти. Основной конечной целью осуществления на практике ТРВ является предотвращение узурпации всей государственной власти одним лицом или группой лиц и сохранение целостности государственного механизма и общества. Все власти равны и автономны 3. Никакая власть не может пользоваться правами предоставленными Конституцией другой власти 4.
26934. Исполнительная и судебная власти 8.68 KB
  исполнительная и судебная власти Исполнительная власть в соответствии с теорией разделения властей – одна из самостоятельных и независимых публичных властей в государстве. Признаки Исполнительной Власти яявляется относительно самостоятельной ветвью государственной власти; является проводником государственной политики в жизнь; подзаконна по своему характеру и задачам; её деятельность является исполнительнораспорядительной и носит постоянный непрерывный во времени характер; является исключительным обладателем материальных ресурсов и...
26935. Государство в политической системе общеста 8.54 KB
  3 Обладает всей системой юридических средств по обеспечению правопорядка: осуществляют регистрацию объединений полит. Государство поддерживает и гарантирует равенство правового статуса однородных социальных объединений политических партий избирательных объединений профсоюзов коммерческих организаций. Многие управленческие решения принимаются государственными органами с учетом мнений пожеланий и предложений социальных объединений. Вместе с тем запрещается государственное вмешательство в деятельность социальных объединений равно как и...
26936. Политическая система общества и ее элементы 7.9 KB
  политическая система общества и ее элементы Политическая система – совокупность гос и общ институтовотношений между ними участвующих в госуд. Необходима единая объединяющая организующая и принуждающая силаполитическая власть.Госво это властнополитическая организация общества которая распространяет свою власть на все население в пределах территории страны издает юридически значимые веления имеет специальный аппарат управления и принуждения и обладает суверенитетом. Политическая деятельность не однородна.