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