Hvad er en MUTEX?
Et gensidigt ekskluderingsobjekt, eller MUTEX, er et objekt oprettet til brug i computerprogrammer. Den væsentligste funktion af MUTEX er at gøre det muligt for en flere programtråd at bruge en enkelt ressource. Generelt er funktionaliteten af gensidige udelukkelsesobjekter at tillade denne brug af en enkelt ressource ved at skabe et miljø, hvor adgangen til ressourcen kontinuerligt føres frem og tilbage mellem de forskellige aspekter af programmet.
Processen med at aktivere og oprette en MUTEX finder sted, når computerprogram-applikationen åbnes. I det væsentlige opretter programmet MUTEX og relaterer det til en bestemt ressource, der er nødvendig for den effektive funktion af det åbne program. Når ressourcerne kaldes, vil operativsystemet tildele et unikt navn til MUTEX og bruge det til at identificere processen, så længe programmet forbliver åbent.
Når MUTEX er aktiveret og navngivet til sessionen, kan enhver anden tråd i programmet, der kræver denne ressource, have adgang, selvom ressourcen allerede er i aktiv brug af en anden tråd. Ved at indikere et behov for ressourcen vil MUTEX-funktionen begynde at skifte adgang til ressourcen frem og tilbage mellem trådene. For slutbrugeren er denne proces gennemsigtig. Til alle praktiske formål ser det ud til, at to brugere eller to tråde gør os til den samme ressource samtidig.
Selvom hastigheden for overførsel af adgang er så hurtig, at den ikke engang bemærkes for slutbrugeren, skal det bemærkes, at når en ressource er i brug, er den effektivt låst til den ene tråd i sekvensen. En anden tråd, der kræver brug af ressourcen, udsteder en anmodning, der går i en kø og forbliver der, indtil den første tråd er færdig med den aktive brug. På det tidspunkt låses ressourcen op, og MUTEX-funktionen tillader den næste tråd i den aktive kø i adgangen. Hvis en tredje tråd er aktiv og har brug for ressourcen, vil MUTEX også linje denne tråd ind i køen og give adgang på roterende basis.