Skip to main content

Wat is transactioneel geheugen?

In software is het schema van transactioneel geheugen een manier van handelen voor multithreaded programmering die transacties gebruikt die veel lijken op die van een database.Wanneer twee of meer threads tegelijkertijd proberen toegang te krijgen tot dezelfde gegevens, kunnen veel verschillende ongewenste situaties resulteren in gevallen waarin de uitkomst van een programma afhangt van de thread -toegangsorder.Gewoonlijk is één bestelling gewenst en bij multithreading zijn sloten de overheersende en eenvoudigste manier om ervoor te zorgen dat slechts een enkele thread tegelijk toegang heeft tot een specifieke bron tegelijk.

Deze benadering van transactioneel geheugen bevat meerdere problemen met betrekking tot vergrendelingen in multithreading.Een slot kan permanent worden als er een soort onverwachte fout optreedt en sloten kunnen onvoorspelbare problemen teweegbrengen met gelijktijdigheid, zoals deadlock of prioriteitsinversie.Als gevolg van het feit dat sloten zeer fijnkorrelig zijn, omvat een ander probleem dat de code uiteindelijk het grootste deel van de tijd doorbrengt tussen vergrendeling, contextomschakeling en ontgrendeling.Dit is een cruciaal probleem omdat het kan leiden tot meer tijd die de code besteden aan deze acties dan bij het doen van ander, belangrijk werk in het programma.De belangrijkste prioriteiten met betrekking tot het transactie -geheugen zijn geen sloten en geen onnodige vergrendelingsverwerkingstijd.Meestal wordt het ermee eens dat een gegevensstructuur die wordt gedeeld vrij is van sloten als wederzijdse uitsluiting niet vereist is door de bewerkingen.Gegevensstructuren die worden gedeeld en vrij van sloten voorkomen dat veelgebonden problemen met standaard vergrendelingstechnieken voorkomen als ze zich in systemen bevinden die zeer gelijktijdig zijn.

Het transactionele geheugencoherentie en consistentie (TCC) -model is een nieuw, voorgesteld model op gedeeld geheugen.Volgens het model zijn atomaire transacties altijd basiseenheden van het volgende: parallel werk, geheugencoherentie, communicatie en consistentie van geheugenreferentie.Het TCC -model maakt parallelle software ook eenvoudiger door synchronisatie te elimineren die normensloten of semaforen gebruikt.Door middel van hardware combineert TCC ook elk schrijven uit elke regio van transactie -optreden in één pakket om het pakket atomair uit te zenden naar een geheugenstatus die permanent wordt gedeeld.Naast vereenvoudigde coherentiehardware, betekent dit dat er een vermindering van berichten met een lage bestemming is en een volledige eliminatie van bepaalde, standaard coherentieprotocollen.