Wzajemne wykluczenie (Mutex)

Autor: Lewis Jackson
Data Utworzenia: 8 Móc 2021
Data Aktualizacji: 15 Móc 2024
Anonim
What is difference between Semaphore and Mutex
Wideo: What is difference between Semaphore and Mutex

Zawartość

Definicja - Co oznacza wzajemne wykluczenie (Mutex)?

Wzajemne wykluczanie (mutex) to obiekt programu, który uniemożliwia jednoczesny dostęp do udostępnionego zasobu. Ta koncepcja jest stosowana w programowaniu współbieżnym z sekcją krytyczną, kawałkiem kodu, w którym procesy lub wątki uzyskują dostęp do współdzielonego zasobu. Tylko jeden wątek jest właścicielem muteksu naraz, dlatego muteks o unikalnej nazwie jest tworzony podczas uruchamiania programu. Gdy wątek zawiera zasób, musi zablokować muteks przed innymi wątkami, aby uniemożliwić równoczesny dostęp do zasobu. Po zwolnieniu zasobu wątek odblokowuje muteks.


Wprowadzenie do Microsoft Azure i Microsoft Cloud | W tym przewodniku dowiesz się, na czym polega przetwarzanie w chmurze i jak Microsoft Azure może pomóc w migracji i prowadzeniu firmy z chmury.

Techopedia wyjaśnia wzajemne wykluczanie (Mutex)

Mutex pojawia się na obrazie, gdy dwa wątki działają na tych samych danych w tym samym czasie. Działa jak blokada i jest najbardziej podstawowym narzędziem synchronizacji. Gdy wątek próbuje uzyskać muteks, zyskuje muteks, jeśli jest dostępny, w przeciwnym razie zostanie ustawiony tryb uśpienia. Wzajemne wykluczanie zmniejsza opóźnienia i zajętości przy użyciu przełączników kolejkowania i con. Mutex można egzekwować zarówno na poziomie sprzętowym, jak i programowym.

Wyłączenie przerwań dla najmniejszej liczby instrukcji jest najlepszym sposobem wymuszenia muteksu na poziomie jądra i zapobiegania uszkodzeniu wspólnych struktur danych. Jeśli wiele procesorów współdzieli tę samą pamięć, ustawiana jest flaga, aby włączyć lub wyłączyć pozyskiwanie zasobów w zależności od dostępności. Mechanizm zajętości wymusza muteks w obszarach oprogramowania. Jest on wyposażony w algorytmy takie jak algorytm Dekkers, czarno-biały algorytm piekarniczy, algorytm Szymanskis, algorytm Petersons i algorytm piekarniczy Lamports.


Wzajemnie wykluczające się czytniki i kody klasy mutex do odczytu / zapisu mogą być zdefiniowane dla efektywnej implementacji muteksu.