Hva er en MUTEX?

Et gjensidig ekskluderingsobjekt, eller MUTEX, er et objekt som er opprettet for bruk i dataprogrammer. Den viktigste funksjonen til MUTEX er å gjøre det mulig for en flertrådsprogram å bruke en enkelt ressurs. Generelt er funksjonaliteten til objekter for gjensidig utelukkelse å tillate denne bruken av en enkelt ressurs ved å skape et miljø der tilgangen til ressursen kontinuerlig føres frem og tilbake mellom de forskjellige aspektene av programmet.

Prosessen med å aktivere og opprette en MUTEX foregår når dataprogrammet åpnes. I hovedsak vil programmet opprette MUTEX og relatere det til en spesifikk ressurs som er nødvendig for effektiv funksjon av det åpne programmet. Når ressursene kalles frem, vil operativsystemet tilordne et unikt navn til MUTEX og bruke den til å identifisere prosessen så lenge programmet forblir åpent.

Når MUTEX er aktivert og navngitt for økten, kan alle andre tråder i programmet som krever denne ressursen ha tilgang, selv om ressursen allerede er i aktiv bruk av en annen tråd. Ved å indikere et behov for ressursen, vil MUTEX-funksjonen begynne å skifte tilgang til ressursen frem og tilbake mellom trådene. For sluttbrukeren er denne prosessen transparent. For alle praktiske formål ser det ut til at to brukere eller to tråder gjør oss til den samme ressursen samtidig.

Mens hastigheten på overføringen av tilgang er så rask at den ikke en gang merkes for sluttbrukeren, skal det bemerkes at når en ressurs er i bruk, er den effektivt låst til den ene tråden i sekvensen. En annen tråd som krever bruk av ressursen vil gi en forespørsel som går i en kø og forbli der til den første tråden er ferdig med den aktive bruken. På dette tidspunktet er ressursen låst opp, og MUTEX-funksjonen tillater neste tråd i den aktive køen tilgang. Hvis en tredje tråd er aktiv og trenger ressursen, vil MUTEX også linje denne tråden i køen og gi tilgang på roterende basis.

ANDRE SPRÅK

Hjalp denne artikkelen deg? Takk for tilbakemeldingen Takk for tilbakemeldingen

Hvordan kan vi hjelpe? Hvordan kan vi hjelpe?