Innholdsfortegnelse:
Definisjon - Hva betyr Dekkers algoritme?
Dekkers algoritme er den første kjente algoritmen som løser det gjensidige ekskluderingsproblemet i samtidig programmering. Det krediteres Th. J. Dekker, en nederlandsk matematiker som opprettet algoritmen for en annen kontekst. Dekkers algoritme brukes i prosesskø, og lar to forskjellige tråder dele den samme engangsressursen uten konflikt ved å bruke delt minne for kommunikasjon.
Techopedia forklarer Dekkers algoritme
Dekkers algoritme vil bare tillate at en enkelt prosess bruker en ressurs hvis to prosesser prøver å bruke den samtidig. Høydepunktet i algoritmen er hvordan den løser dette problemet. Det lykkes i å forhindre konflikten ved å håndheve gjensidig ekskludering, noe som betyr at bare en prosess kan bruke ressursen om gangen og vil vente hvis en annen prosess bruker den. Dette oppnås ved bruk av to "flagg" og et "symbol". Flaggene indikerer om en prosess ønsker å gå inn i den kritiske delen (CS) eller ikke; en verdi på 1 betyr SANN at prosessen ønsker å gå inn i CS, mens 0, eller FALSE, betyr det motsatte. Token, som også kan ha en verdi på 1 eller 0, indikerer prioritet når begge prosessene har flaggene sine satt til SANN.
Denne algoritmen kan lykkes med å håndheve gjensidig ekskludering, men vil hele tiden teste om den kritiske delen er tilgjengelig og kaster bort betydelig prosessortid. Det skaper problemet kjent som lockstep synkronisering, der hver tråd bare kan utføres i streng synkronisering. Det er også ikke-utvidbart, da det bare støtter maksimalt to prosesser for gjensidig eksklusjon.




