Взаимное исключение

Взаимное исключение

Мью́текс (англ. mutex, от mutual exclusion — взаимное исключение) — одноместный семафор, служащий в программировании для синхронизации одновременно выполняющихся потоков.

Мьютексы (mutex) — это один из вариантов семафорных механизмов для организации взаимного исключения. Они реализованы во многих ОС, их основное назначение — организация взаимного исключения для потоков из одного и того же или из разных процессов.

Мьютексы — это простейшие двоичные семафоры, которые могут находиться в одном из двух состояний — отмеченном или неотмеченном (открыт и закрыт соответственно). Когда какой-либо поток, принадлежащий любому процессу, становится владельцем объекта mutex, последний переводится в неотмеченное состояние. Если задача освобождает мьютекс, его состояние становится отмеченным.

Организация последовательного доступа к ресурсам с использованием мьютексов становится несложной, поскольку в каждый конкретный момент только один поток может владеть этим объектом. Для того, чтобы объект mutex стал доступен потокам, принадлежащим разным процессам, при создании ему необходимо присвоить имя. Потом это имя нужно передать «по наследству» задачам, которые должны его использовать для взаимодействия. Для этого вводятся специальные системные вызовы (CreateMutex), в которых указывается начальное значение мьютекса и его имя.

Для работы с мьютексом имеется несколько функций. Помимо уже упомянутой функции создания такого объекта (CreateMutex), есть функции открытия (OpenMutex) и функция освобождения этого объекта (ReleaseMutex). Конкретные обращения к этим функциям и перечни передаваемых и получаемых параметров нужно смотреть в документации на соответствующую ОС.

Единственная задача мьютекса — защита объекта от доступа к нему других потоков, отличных от того, который завладел мьютексом. Если другому потоку будет нужен доступ к переменной, защищённой мьютексом, то этот поток просто засыпает до тех пор, пока мьютекс не будет освобождён.

Цель использования мьютексов — защита данных от повреждения; однако им порождаются другие проблемы, такие как взаимная блокировка (клинч) и «соревнование за ресурс».

См. также



Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Взаимное исключение" в других словарях:

  • взаимное исключение — семафор (в программировании) флаг (в программировании) В Windows механизм, используемый для синхронизации доступа к общему ресурсу [http://www.kolbi.ru/cgi/dict/s.pl]. [http://www.morepc.ru/dict/] Тематики информационные технологии в целом… …   Справочник технического переводчика

  • взаимное исключение — mutual exclusion взаимное исключение. Подавление размножения первым по времени проникновения в клетку фагом второго фага при повторном заражении (суперинфекции); В.и. может иметь место лишь при заражениях неродственными фагами (мутантными… …   Молекулярная биология и генетика. Толковый словарь.

  • Взаимное страхование — (англ. Mutual insurance) одна из организационных форм страховой защиты. Взаимное страхование основано на договоренности между собой группы физических, юридических лиц о возмещении убытков, возникших в результате случайных событий, за счет… …   Википедия

  • Алгоритм Деккера — первое известное корректное решение проблемы взаимного исключения в конкурентном программировании. Эдсгер Дейкстра ссылается на голландского математика Т. Деккера как на автора данного алгоритма в своей работе о межпроцессном взаимодействии[1].… …   Википедия

  • Алгоритмы предотвращения взаимной блокировки — При разработке программного обеспечения для распараллеливания выполнения задач используют потоки. При некоторых условиях в работы потоков может возникать взаимная блокировка, что приводит прекращению выполнения параллельных задач. Поиск …   Википедия

  • КАСТАНЕДА — (Castaneda) Карлос (1896 1958) латиноамериканский антрополог, автор ряда книг, посвященных изложению миропонимания мексиканского индейца яки До на Хуана Матуса, одного из (согласно К.) Учителей человечества. (Сочинения К.: «Учение Дона Хуана:… …   Новейший философский словарь

  • ПРОТИВОРЕЧИЕ — два высказывания, из которых одно является отрицанием другого. Напр.: «Латунь химический элемент» и «Латунь не является химическим элементом», «2 простое число» и «2 не является простым числом». В одном из противоречащих высказываний что то… …   Философская энциклопедия

  • Мьютекс — (англ. mutex, от mutual exclusion  «взаимное исключение»)  одноместный семафор, служащий в программировании для синхронизации одновременно выполняющихся потоков. Мьютексы  это один из вариантов семафорных механизмов для… …   Википедия

  • Мутекс — Мьютекс (англ. mutex, от mutual exclusion  взаимное исключение)  одноместный семафор, служащий в программировании для синхронизации одновременно выполняющихся потоков. Мьютексы (mutex)  это один из вариантов семафорных механизмов для организации… …   Википедия

  • Мьютэкс — Мьютекс (англ. mutex, от mutual exclusion  взаимное исключение)  одноместный семафор, служащий в программировании для синхронизации одновременно выполняющихся потоков. Мьютексы (mutex)  это один из вариантов семафорных механизмов для организации… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»