Зміст:
Визначення - Що означає взаємне виключення (Mutex)?
Взаємне виключення (mutex) - це об’єкт програми, що перешкоджає одночасному доступу до спільного ресурсу. Ця концепція використовується в паралельному програмуванні з критичним розділом, фрагментом коду, в якому процеси або потоки отримують доступ до спільного ресурсу. Лише один потік володіє mutex за раз, таким чином, mutex з унікальним іменем створюється при запуску програми. Коли потік містить ресурс, він повинен заблокувати мютекс від інших потоків, щоб запобігти одночасному доступу до ресурсу. Вивільняючи ресурс, потік розблоковує мютекс.
Техопедія пояснює взаємне виключення (Mutex)
Mutex виходить на малюнок, коли дві нитки працюють над одними і тими ж даними одночасно. Він виконує функцію блокування та є основним інструментом синхронізації. Коли нитка намагається придбати мютекс, вона набирає мютекс, якщо він доступний, інакше нитка встановлена у режимі сну. Взаємне виключення зменшує затримку та зайнятість-чекання за допомогою черги та контекстних комутаторів. Mutex можна застосовувати як на апаратному, так і на програмному рівні.
Вимкнення переривань для найменшої кількості інструкцій - найкращий спосіб застосувати mutex на рівні ядра та запобігти пошкодженню спільних структур даних. Якщо декілька процесорів поділяють одну і ту ж пам’ять, встановлюється прапор, щоб увімкнути та вимкнути отримання ресурсів на основі наявності. Механізм зайнятого очікування застосовує mutex у програмних областях. Це забезпечено такими алгоритмами, як алгоритм Деккера, алгоритм чорно-білої пекарні, алгоритм Шиманського, алгоритм Петерсона та алгоритм пекарні Лампорта.
Для ефективної реалізації файлів mutex можна визначити взаємовиключні читачі та читати / записувати коди класу mutex.
