Skip to main content

Hva er transaksjonsminne?

I programvare er ordningen med transaksjonsminne et handlingsforløp for multithreaded -programmering som bruker transaksjoner som er omtrent som de som en database bruker.Når to eller flere tråder prøver å få tilgang til de samme dataene samtidig, kan mange forskjellige uønskede situasjoner føre til tilfeller der et programs resultat avhenger av trådtilgangsrekkefølgen.Vanligvis er det ønsket en ordre, og i multithreading er låser den dominerende og enkleste måten å sikre at bare en enkelt tråd har tilgang til en spesifikk ressurs om gangen.

Denne tilnærmingen til transaksjonsminne inneholder flere problemer med hensyn til lås i multithreading.En lås kan bli permanent hvis en slags uventet feil oppstår, og låser kan føre til uforutsigbare problemer med samtidighet, som deadlock eller prioritert inversjon.Som et resultat av at låser er veldig finkornet, inkluderer en annen utgave at koden til slutt ender opp med å bruke et flertall av tid mellom låsing, kontekstbytte og låsing.Dette er et avgjørende problem fordi det kan resultere i at koden bruker mer tid på disse handlingene enn å gjøre annet, viktig arbeid i programmet.I motsetning til dette kan grovkornede låser forårsake redusert prosesseringsytelse og redusert samtidighet.

Problemene i transaksjonsminnet blir adressert av avanserte låser, inkludert "låsblokk" fra C#, lese-skriver låser, skrivebarrierer, etc. En avHovedprioriteringer med hensyn til transaksjonsminne er å ikke ha noen låser og ingen unødvendig låsedreprenørstid.Det er vanligvis enighet om at en datastruktur som deles er fri for låser hvis gjensidig utelukkelse ikke er påkrevd av driften.Datastrukturer som er delt og fri for låser unngår ofte tilknyttede problemer med standard låseteknikker hvis de er i systemer som er svært samtidig.

.I henhold til modellen er atomtransaksjoner alltid grunnleggende enheter for følgende: parallelt arbeid, minnekoherens, kommunikasjon og konsistens av minnereferanse.TCC -modellen gjør også parallellprogramvare enklere ved å eliminere synkronisering som bruker standardlåser eller semaforer.Gjennom maskinvare kombinerer TCC også hver skriving fra hver region med transaksjonsforekomst til en pakke for å kringkaste pakken atomisk til en minnetilstand som er permanent delt.I tillegg til forenklet koherensmaskinvare, betyr dette at det er en reduksjon i nødvendig med lav dormansmeldinger og en fullstendig eliminering av visse, standard sammenhengsprotokoller.