Co to jest MUTEX?

Obiekt wzajemnego wykluczania, czyli MUTEX, to obiekt stworzony do użytku w programach komputerowych. Podstawową funkcją MUTEX-a jest umożliwienie wielu wątkom programu korzystania z jednego zasobu. Ogólnie rzecz biorąc, funkcjonalność obiektów wzajemnego wykluczania polega na umożliwieniu korzystania z pojedynczego zasobu poprzez stworzenie środowiska, w którym dostęp do zasobu jest stale przekazywany między różnymi aspektami programu.

Proces aktywacji i tworzenia MUTEX-u odbywa się w momencie otwarcia aplikacji programu komputerowego. Zasadniczo program utworzy MUTEX i powiąże go z konkretnym zasobem, który jest potrzebny do wydajnego funkcjonowania otwartego programu. Gdy zasoby są wywoływane, system operacyjny przypisze MUTEX unikalną nazwę i użyje jej do identyfikacji procesu tak długo, jak program pozostaje otwarty.

Gdy MUTEX jest aktywowany i nazwany dla sesji, każdy inny wątek programu, który wymaga tego zasobu, może mieć dostęp, nawet jeśli zasób jest już aktywnie używany przez inny wątek. Wskazując zapotrzebowanie na zasób, funkcja MUTEX rozpocznie naprzemienny dostęp do zasobu tam iz powrotem między wątkami. Dla użytkownika końcowego proces ten jest przejrzysty. Ze wszystkich praktycznych celów i celów wydaje się, że dwóch użytkowników lub dwa wątki jednocześnie korzystają z tego samego zasobu.

Chociaż szybkość przekazywania dostępu jest tak duża, że ​​nie jest nawet zauważalna dla użytkownika końcowego, należy zauważyć, że za każdym razem, gdy zasób jest w użyciu, jest on skutecznie blokowany do jednego wątku w sekwencji. Kolejny wątek wymagający użycia zasobu wyśle ​​żądanie, które trafi do kolejki i pozostanie tam do momentu zakończenia aktywnego użycia przez pierwszy wątek. W tym momencie zasób zostaje odblokowany, a funkcja MUTEX umożliwia aktywny dostęp do następnego wątku w kolejce. Jeśli trzeci wątek jest aktywny i potrzebuje zasobu, MUTEX również umieści ten wątek w kolejce i przyzna dostęp na zasadzie rotacji.