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

Автор: Lewis Jackson
Дата На Създаване: 8 Може 2021
Дата На Актуализиране: 15 Може 2024
Anonim
Section 5
Видео: Section 5

Съдържание

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

Взаимното изключване (mutex) е програмен обект, който предотвратява едновременния достъп до споделен ресурс. Тази концепция се използва при едновременно програмиране с критичен раздел, част от код, в който процесите или нишките имат достъп до споделен ресурс. Само една нишка притежава mutex в даден момент, като по този начин мутекс с уникално име се създава при стартиране на програма. Когато дадена нишка съдържа ресурс, тя трябва да заключи мутекса от други нишки, за да предотврати едновременния достъп до ресурса. При освобождаване на ресурса нишката отключва мутекса.


Въведение в Microsoft Azure и Microsoft Cloud | В това ръководство ще научите какво представлява компютърните изчисления и как Microsoft Azure може да ви помогне да мигрирате и стартирате бизнеса си от облака.

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

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

Деактивирането на прекъсвания за най-малък брой инструкции е най-добрият начин за налагане на mutex на ниво ядро ​​и предотвратяване на корупцията на споделени структури от данни. Ако множество процесори споделят една и съща памет, се задава флаг, който да активира и деактивира придобиването на ресурси въз основа на наличността. Механизмът на заетото чакане налага мутекс в софтуерните области. Това е обзаведено с алгоритми като алгоритъм на Dekkers, алгоритъм на черно-белите хлебни изделия, алгоритъм на Szymanskis, алгоритъм на Petersons и алгоритъм за печене на Lamports.


Могат да бъдат определени взаимно изключващи се четци и четене / запис на мутекс кодове за ефективно изпълнение на mutex.