Co to jest pamięć transakcyjna?

W oprogramowaniu schemat pamięci transakcyjnej jest kierunkiem działania dla programowania wielowątkowego, które wykorzystują transakcje, które są podobne do tych, których używa baza danych. Gdy dwa lub więcej wątków próbują uzyskać dostęp do tych samych danych, wiele różnych niepożądanych sytuacji może skutkować przypadkami, w których wynik programu zależy od kolejności dostępu do wątków. Zazwyczaj jedno zamówienie jest pożądane, a podczas wielowy, zamki są głównym i najprostszym sposobem, aby upewnić się, że tylko jeden wątek ma dostęp do określonego zasobu.

To podejście do pamięci transakcyjnej zawiera wiele problemów w odniesieniu do zamków w wielowym. Blokada może stać się trwała, jeśli wystąpi jakiś nieoczekiwany błąd, a zamki mogą wprowadzić nieprzewidywalne problemy z współbieżnością, takie jak inwersja zakleszcza lub priorytetowa. W wyniku bardzo drobnoziarnistych zamków, kolejny problem obejmuje ostatecznie kod w końcu spędza większość czasu między blokowaniem, przełączaniem kontekstu i UNLOcking. Jest to kluczowy problem, ponieważ może spowodować, że kod spędza więcej czasu na tych działaniach niż na wykonanie innych, ważnych prac w programie. Natomiast gruboziarniste zamki mogą powodować zmniejszoną wydajność przetwarzania i zmniejszoną współbieżność.

Problemy w pamięci transakcyjnej są rozwiązywane przez zaawansowane zamki, w tym „blokowanie blokady” z C#, zamyk od odczytu, bariery itp. Jednym z głównych priorytetów w zakresie pamięci transakcyjnej jest brak blokad i brak niepotrzebnego czasu przetwarzania blokady. Zwykle uzgodnia się, że udostępniona struktura danych jest wolna od zamków, jeśli jego operacje nie jest wymagane wzajemne wykluczenie. Struktury danych, które są udostępniane i wolne od zamków, unikają powszechnie powiązanych problemów ze standardowymi technikami blokowania, jeśli są one w systemach, które są wysoce współbieżne.

Model koherencji i spójności pamięci transakcyjnej (TCC) jest nowym,Proponowany model na pamięci współdzielonej. Zgodnie z modelem transakcje atomowe są niezmiennie podstawowymi jednostkami następujących: Prace równoległe, spójność pamięci, komunikacja i spójność odniesienia pamięci. Model TCC jest również prostszy oprogramowanie równoległe poprzez wyeliminowanie synchronizacji, która wykorzystuje blokady standardów lub semafory. Za pośrednictwem sprzętu TCC łączy również każdy zapis z każdego regionu wystąpienia transakcji w jeden pakiet, aby atomicznie nadać pakiet do stanu pamięci, który jest na stałe udostępniany. Oprócz uproszczonego sprzętu do koherencji oznacza to, że potrzebne jest zmniejszenie komunikatów o niskim poziomie i całkowitą eliminację pewnych standardowych protokołów koherencyjnych.

INNE JĘZYKI