Оглавление:
- Определение - Что означает взаимное исключение (Mutex)?
- Техопедия объясняет взаимное исключение (Mutex)
Определение - Что означает взаимное исключение (Mutex)?
Взаимное исключение (мьютекс) - это программный объект, который предотвращает одновременный доступ к общему ресурсу. Эта концепция используется в параллельном программировании с критическим разделом, фрагментом кода, в котором процессы или потоки обращаются к общему ресурсу. Только один поток одновременно владеет мьютексом, поэтому мьютекс с уникальным именем создается при запуске программы. Когда поток содержит ресурс, он должен заблокировать мьютекс из других потоков, чтобы предотвратить одновременный доступ к ресурсу. После освобождения ресурса поток разблокирует мьютекс.
Техопедия объясняет взаимное исключение (Mutex)
Mutex появляется, когда два потока работают с одними и теми же данными одновременно. Он действует как замок и является самым основным инструментом синхронизации. Когда поток пытается получить мьютекс, он получает мьютекс, если он доступен, в противном случае поток устанавливается в состояние ожидания. Взаимное исключение уменьшает время ожидания и ожидания при использовании очереди и переключений контекста. Mutex может применяться как на аппаратном, так и на программном уровне.
Отключение прерываний для наименьшего количества инструкций - лучший способ принудительно использовать мьютекс на уровне ядра и предотвратить повреждение общих структур данных. Если несколько процессоров совместно используют одну и ту же память, устанавливается флаг для включения и отключения получения ресурсов в зависимости от доступности. Механизм «занят-ожидание» обеспечивает мьютекс в областях программного обеспечения. Он снабжен такими алгоритмами, как алгоритм Деккера, алгоритм черно-белой пекарни, алгоритм Шимански, алгоритм Петерсона и алгоритм Лэмпорта.
Для эффективной реализации мьютекса могут быть определены взаимоисключающие читатели и коды классов мьютекса для чтения / записи.
