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

Автор: Lewis Jackson
Дата создания: 8 Май 2021
Дата обновления: 15 Май 2024
Anonim
ТиПМС 1. Взаимное исключение, мьютексы и спинлоки
Видео: ТиПМС 1. Взаимное исключение, мьютексы и спинлоки

Содержание

Определение - Что означает взаимное исключение (Mutex)?

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


Введение в Microsoft Azure и Microsoft Cloud | Из этого руководства вы узнаете, что такое облачные вычисления и как Microsoft Azure может помочь вам перенести и запустить свой бизнес из облака.

Техопедия объясняет взаимное исключение (Mutex)

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

Отключение прерываний для наименьшего числа инструкций - лучший способ принудительно использовать мьютекс на уровне ядра и предотвратить повреждение общих структур данных. Если несколько процессоров совместно используют одну и ту же память, устанавливается флаг для включения и отключения получения ресурсов в зависимости от доступности. Механизм «занят-ожидание» обеспечивает мьютекс в областях программного обеспечения. Он снабжен такими алгоритмами, как алгоритм Деккерса, алгоритм черно-белой пекарни, алгоритм Шиманскиса, алгоритм Петерсона и алгоритм пекарни Лампорта.


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