Co to jest pamięć transakcyjna?

W oprogramowaniu schemat pamięci transakcyjnej jest działaniem w przypadku programowania wielowątkowego, w którym wykorzystuje się transakcje podobne do tych, które wykorzystuje baza danych. Gdy dwa lub więcej wątków próbuje uzyskać dostęp do tych samych danych w tym samym czasie, może wystąpić wiele różnych niepożądanych sytuacji w przypadkach, w których wynik programu zależy od kolejności dostępu do wątku. Zwykle pożądane jest jedno zamówienie, aw wielowątkowości zamki są dominującym i najprostszym sposobem zapewnienia, że ​​tylko jeden wątek ma dostęp do określonego zasobu na raz.

To podejście do pamięci transakcyjnej zawiera wiele problemów związanych z blokadami w wielowątkowości. Blokada może stać się trwała, jeśli wystąpi jakiś nieprzewidziany błąd, a blokady mogą powodować nieprzewidziane problemy ze współbieżnością, takie jak zakleszczenie lub inwersja priorytetów. Z powodu bardzo drobnych szczegółów blokad, kolejną kwestią jest to, że kod ostatecznie spędza większość czasu między blokowaniem, przełączaniem kontekstu i odblokowywaniem. Jest to kluczowy problem, ponieważ może spowodować, że kod będzie spędzał więcej czasu na tych działaniach niż na wykonywaniu innej, ważnej pracy w programie. Natomiast zamki gruboziarniste mogą powodować obniżenie wydajności przetwarzania i zmniejszenie współbieżności.

Problemy z pamięcią transakcyjną są rozwiązywane przez zaawansowane blokady, w tym „blokadę bloków” z C #, blokady do odczytu i zapisu, bariery zapisu itp. Jednym z głównych priorytetów w odniesieniu do pamięci transakcyjnej jest brak blokad i niepotrzebny czas przetwarzania blokady . Zazwyczaj zgadza się, że wspólna struktura danych jest wolna od blokad, jeśli jej operacje nie wymagają wzajemnego wykluczenia. Struktury danych, które są współużytkowane i wolne od blokad, pozwalają uniknąć typowych problemów ze standardowymi technikami blokowania, jeśli są w systemach, które są wysoce współbieżne.

Model spójności i spójności pamięci transakcyjnej (TCC) to nowy, proponowany model pamięci wspólnej. Zgodnie z modelem transakcje atomowe są niezmiennie podstawowymi jednostkami: pracy równoległej, spójności pamięci, komunikacji i spójności odniesienia do pamięci. Model TCC upraszcza także oprogramowanie równoległe, eliminując synchronizację wykorzystującą standardowe blokady lub semafory. Poprzez sprzęt, TCC łączy również każdy zapis z każdego regionu wystąpienia transakcji w jeden pakiet, aby atomowo rozsyłać pakiet do stanu pamięci, który jest stale współużytkowany. Oprócz uproszczonego sprzętu koherencyjnego oznacza to, że potrzebna jest redukcja potrzebnych komunikatów o niskim uśpieniu i całkowita eliminacja niektórych standardowych protokołów koherencji.

INNE JĘZYKI

Czy ten artykuł był pomocny? Dzięki za opinie Dzięki za opinie

Jak możemy pomóc? Jak możemy pomóc?