Vad är transaktionsminne?

I programvara är schemat för transaktionsminne en åtgärd för multittrad 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ådens åtkomstorder. 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 UNLOCKING. 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ässkrivlås, skrivbarriärer etc. En av de viktigaste prioriteringarna när det gäller transaktionsminne är att inte ha några lås och inga onödiga 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.

Modellen för transaktionsminneskoherens och konsistens (TCC) är en ny,Föreslagen modell på delat minne. 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 till ett paket för att atomiskt sända paketet till ett minnesläge som är permanent delat. Förutom förenklad koherenshårdvara innebär detta att det finns en minskning av meddelanden med låg dval som behövs 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?