Dekkers algoritme

Forfatter: Robert Simon
Oprettelsesdato: 17 Juni 2021
Opdateringsdato: 24 Juni 2024
Anonim
Race Conditions and How to Prevent Them - A Look at Dekker’s Algorithm
Video.: Race Conditions and How to Prevent Them - A Look at Dekker’s Algorithm

Indhold

Definition - Hvad betyder Dekkers algoritme?

Dekkers algoritme er den første kendte algoritme, der løser det gensidige ekskluderingsproblem i samtidig programmering. Det krediteres Th. J. Dekker, en hollandsk matematiker, der skabte algoritmen til en anden kon. Dekkers-algoritme bruges i processkø, og tillader to forskellige tråde at dele den samme engangsressource uden konflikt ved at bruge delt hukommelse til kommunikation.


En introduktion til Microsoft Azure og Microsoft Cloud | Gennem denne vejledning lærer du, hvad cloud computing handler om, og hvordan Microsoft Azure kan hjælpe dig med at migrere og drive din virksomhed fra skyen.

Techopedia forklarer Dekkers algoritme

Dekkers algoritme tillader kun en enkelt proces at bruge en ressource, hvis to processer forsøger at bruge den på samme tid. Højdepunktet i algoritmen er, hvordan den løser dette problem. Det lykkes at forhindre konflikten ved at håndhæve gensidig udelukkelse, hvilket betyder, at kun en proces må bruge ressourcen ad gangen og vil vente, hvis en anden proces bruger den. Dette opnås ved brug af to "flag" og et "token". Flagene angiver, om en proces ønsker at gå ind i det kritiske afsnit (CS) eller ej; en værdi på 1 betyder SAND, at processen vil indtaste CS, mens 0 eller FALSE betyder det modsatte. Token, der også kan have en værdi på 1 eller 0, angiver prioritet, når begge processer har deres flag sat til SAND.

Denne algoritme kan med succes håndhæve gensidig udelukkelse, men vil konstant teste, om det kritiske afsnit er tilgængeligt og spilder derfor betydelig processortid. Det skaber problemet kendt som lockstep-synkronisering, hvor hver tråd kun kan udføres i streng synkronisering. Det kan også ikke udvides, da det kun understøtter maksimalt to processer til gensidig udstødelse.