Skip to main content

Vad är transaktionsminne?

I programvara är schemat för transaktionsminne en handlingsplan för multitrådad programmering som använder transaktioner som liknar de som en databas använder.När två eller flera trådar försöker komma åt samma data samtidigt kan många olika oönskade situationer resultera i fall där ett programs resultat beror på trådåtkomstordern.Vanligtvis är en beställning önskad och i multithreading är lås det dominerande och enklaste sättet att säkerställa att endast en enda tråd har tillgång till en specifik resurs i taget.

Detta tillvägagångssätt för transaktionsminne innehåller flera problem när det gäller lås i multithreading.Ett lås kan bli permanent om någon form av oförutsedd fel uppstår, och lås kan åstadkomma oförutsägbara problem med samtidighet, som dödläge eller prioriterad inversion.Som ett resultat av att lås är mycket finkorniga, inkluderar en annan fråga koden som så småningom slutar spendera en majoritet av tiden mellan låsning, kontextbyte och låsning.Detta är ett avgörande problem eftersom det kan leda till att koden spenderar mer tid på dessa åtgärder än att göra annat, viktigt arbete i programmet.Däremot kan grovkorniga lås orsaka minskad bearbetningsprestanda och minskad samtidighet.

Problemen i transaktionsminnet behandlas av avancerade lås, inklusive "låsblock" från C#, läs-skrivlås, skrivbarriärer, etc. En av de av deHuvudprioriteringar när det gäller transaktionsminne är att inte ha några lås och ingen onödig låsbehandlingstid.Det är vanligtvis överens om att en datastruktur som delas är fri från lås om ömsesidig uteslutning inte krävs av dess verksamhet.Datastrukturer som delas och är fria från lås undviker vanligtvis associerade problem med standardlåsningstekniker om de är i system som är mycket samtidiga.

Enligt modellen är atomtransaktioner alltid grundläggande enheter av följande: parallellt arbete, minneskoherens, kommunikation och konsistens i minnesreferensen.TCC -modellen gör också parallellprogramvara enklare genom att eliminera synkronisering som använder standardlås eller semaforer.Genom hårdvara kombinerar TCC också varje skrivning från varje region i transaktionshändelse i ett paket för att atomiskt sända paketet till ett minnesstillstånd som delas permanent.Förutom förenklad koherenshårdvara innebär detta att det finns en minskning av meddelanden med låg dval och en fullständig eliminering av vissa standardkoherensprotokoll.