Hvad er transaktionshukommelse?
I software er transaktionshukommelsens skema et handlingsforløb for multitrådeprogrammering, der bruger transaktioner, der ligner dem, som en database bruger. Når to eller flere tråde forsøger at få adgang til de samme data på samme tid, kan mange forskellige uønskede situationer resultere i tilfælde, hvor et programs resultat afhænger af trådadgangsordren. Normalt ønskes en rækkefølge, og i multitrådning er låse den dominerende og enkleste måde at sikre, at kun en enkelt tråd har adgang til en bestemt ressource ad gangen.
Denne tilgang til transaktionshukommelse indeholder flere problemer med hensyn til låse i multithreading. En lås kan blive permanent, hvis der opstår en form for uventet fejl, og låse kan medføre uforudsigelige problemer med samtidig, som deadlock eller prioriteret inversion. Som et resultat af, at låse er meget finkornede, inkluderer et andet emne koden, der til sidst ender med at bruge et flertal af tiden mellem låsning, kontekstskifte og oplåsning. Dette er et afgørende problem, fordi det kan resultere i, at koden bruger mere tid på disse handlinger end på at udføre andet vigtigt arbejde i programmet. I modsætning hertil kan grovkornede låse forårsage nedsat behandlingsydelse og nedsat samtidighed.
Problemerne i transaktionshukommelse adresseres af avancerede låse, herunder "låseblokke" fra C #, læse-skrive låse, skrivebarrierer osv. En af hovedprioriteterne med hensyn til transaktionshukommelse er at have ingen låse og ingen unødvendig låsebehandlingstid . Det er normalt aftalt, at en datastruktur, der deles, er fri for låse, hvis gensidig udelukkelse ikke kræves af dens operationer. Datastrukturer, der deles og er fri for låse, undgår almindeligt forbundne problemer med standardlåseteknikker, hvis de findes i systemer, der er meget samtidige.
TCC-modellen (Transactionional Memory Koherence and Consistency) er en ny, foreslået model på delt hukommelse. I henhold til modellen er atomtransaktioner uundgåeligt basale enheder af følgende: parallelt arbejde, hukommelseskoherens, kommunikation og konsistens i hukommelsesreferencen. TCC-modellen gør også parallel software enklere ved at fjerne synkronisering, der bruger standardlåse eller semaforer. Gennem hardware kombinerer TCC også hver skrivning fra hver region af transaktionsforekomst i en pakke for at atomisk udsende pakken til en hukommelsestilstand, der deles permanent. Ud over den forenklede kohærenshardware betyder dette, at der er en reduktion af de nødvendige beskeder med lav dvalemitet og en fuldstændig eliminering af visse standardkohærensprotokoller.