Взаємне виключення (Mutex)

Автор: Lewis Jackson
Дата Створення: 8 Травень 2021
Дата Оновлення: 15 Травень 2024
Anonim
Марченко О.І.ПАРАЛЕЛЬНЕ ПРОГРАМУВАННЯ.Тема 3.Потоки в Linux.Ч2.Взаємне виключення та синхронізація
Відеоролик: Марченко О.І.ПАРАЛЕЛЬНЕ ПРОГРАМУВАННЯ.Тема 3.Потоки в Linux.Ч2.Взаємне виключення та синхронізація

Зміст

Визначення - Що означає взаємне виключення (Mutex)?

Взаємне виключення (mutex) - це об’єкт програми, що перешкоджає одночасному доступу до спільного ресурсу. Ця концепція використовується в паралельному програмуванні з критичним розділом, фрагментом коду, в якому процеси або потоки отримують доступ до спільного ресурсу. Лише один потік володіє mutex за раз, таким чином, mutex з унікальним іменем створюється при запуску програми. Коли потік містить ресурс, він повинен заблокувати мютекс від інших потоків, щоб запобігти одночасному доступу до ресурсу. Вивільняючи ресурс, потік розблоковує мютекс.


Вступ до Microsoft Azure та Microsoft Cloud | У цьому посібнику ви дізнаєтеся, що стосується хмарних обчислень та як Microsoft Azure може допомогти вам мігрувати та вести свій бізнес із хмари.

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

Mutex виходить на малюнок, коли дві нитки працюють над одними і тими ж даними одночасно. Він виконує функцію блокування та є основним інструментом синхронізації. Коли нитка намагається придбати мютекс, вона набирає мютекс, якщо він доступний, інакше нитка встановлена ​​у режимі сну. Взаємне виключення зменшує затримку та зайнятість-чекання з використанням перемикачів черги та кон. Mutex можна застосовувати як на апаратному, так і на програмному рівні.

Вимкнення переривань для найменшої кількості інструкцій - найкращий спосіб застосувати mutex на рівні ядра та запобігти пошкодженню спільних структур даних. Якщо декілька процесорів поділяють одну і ту ж пам’ять, встановлюється прапор, щоб увімкнути та вимкнути отримання ресурсів на основі наявності. Механізм зайнятого очікування застосовує mutex у програмних областях. Це забезпечено такими алгоритмами, як алгоритм Dekkers, алгоритм чорно-білих хлібобулочних виробів, алгоритм Szymanskis, алгоритм Petersons та алгоритм пекарні Lamports.


Для ефективної реалізації файлів mutex можна визначити взаємовиключні читачі та читати / записувати коди класу mutex.