Dom Rozwój Co to jest wzajemne wykluczanie (mutex)? - definicja z techopedia

Co to jest wzajemne wykluczanie (mutex)? - definicja z techopedia

Spisu treści:

Anonim

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.

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 kolejkowania i przełączników kontekstu. 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 Dekkera, czarno-biały algorytm piekarniczy, algorytm Szymańskiego, algorytm Petersona i algorytm piekarniczy Lamporta.

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

Co to jest wzajemne wykluczanie (mutex)? - definicja z techopedia