Vad är transaktionsminne?

I mjukvara är transaktionsminnes schema en åtgärd 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 få åtkomst till samma data på samma gång kan många olika oönskade situationer resultera i fall där ett programs resultat beror på trådåtkomstordningen. Vanligtvis önskas en ordning och i flertrådning är lås det dominerande och enklaste sättet att säkerställa att endast en enda tråd har åtkomst till en specifik resurs åt gången.

Detta tillvägagångssätt för transaktionsminne innehåller flera problem med avseende på lås i flertrådning. Ett lås kan bli permanent om något slags oväntat fel inträffar och lås kan leda till oförutsägbara problem med samtidighet, som dödlås eller prioriterad inversion. Som ett resultat av att lås är mycket finkorniga, inkluderar en annan fråga koden så småningom slutar spendera en majoritet av tiden mellan låsning, kontextväxling och upplåsning. Detta är ett avgörande problem eftersom det kan leda till att koden lägger mer tid på dessa åtgärder än på att göra annat viktigt arbete i programmet. Däremot kan grovkornade lås orsaka minskad bearbetningsprestanda och minskad samtidighet.

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

TCC-modellen (Transactionional Memory Coherence and Consistency) är en ny, föreslagen modell på delat minne. Enligt modellen är atomtransaktioner alltid grundenheter av följande: parallellt arbete, minnes koherens, 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 skriv från varje transaktionsregion i ett paket för att atomiskt sända paketet till ett minnesläge som delas permanent. Förutom förenklad hårdvara för koherens innebär detta att det behövs en minskning av meddelanden med låg dormans och en fullständig eliminering av vissa standardkoherensprotokoll.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?