O que é memória transacional?

No software, o esquema da memória transacional é um curso de ação para programação multithread que usa transações muito parecidas com as que um banco de dados usa. Quando dois ou mais threads tentam acessar os mesmos dados ao mesmo tempo, muitas situações indesejáveis ​​diferentes podem resultar em casos em que o resultado de um programa depende da ordem de acesso a Thread. Geralmente, uma ordem é desejada e, no multithreading, os bloqueios são a maneira predominante e mais simples de garantir que apenas um único encadeamento tenha acesso a um recurso específico de cada vez. Um bloqueio pode se tornar permanente se ocorrer algum tipo de erro imprevisto, e os bloqueios podem trazer problemas imprevisíveis com simultaneidade, como impasse ou inversão prioritária. Como resultado de bloqueios sendo muito finos, outro problema inclui o código acabando acabando gastando a maior parte do tempo entre bloqueio, troca de contexto e UNLocking. Esse é um problema crucial, pois pode resultar no código gastando mais tempo nessas ações do que em fazer outro trabalho importante no programa. Por outro lado, bloqueios de granulação grossa podem causar diminuição do desempenho do processamento e diminuição da simultaneidade.

Os problemas na memória transacional são abordados por bloqueios avançados, incluindo "Bloqueio de bloqueio" de C#, travas de leitura-escreva, barreiras de gravação, etc. Uma das principais prioridades em relação à memória transacional é não ter bloqueios nem tempo desnecessário de processamento de bloqueio. Geralmente, é acordado que uma estrutura de dados compartilhada está livre de bloqueios se a exclusão mútua não for exigida por suas operações. Estruturas de dados compartilhadas e livres de bloqueios evitam problemas comumente associados a técnicas de bloqueio padrão se estiverem em sistemas altamente concorrentes.

O modelo de coerência e consistência da memória transacional (TCC) é um novo,modelo proposto na memória compartilhada. De acordo com o modelo, as transações atômicas são invariavelmente unidades básicas do seguinte: trabalho paralelo, coerência da memória, comunicação e consistência da referência da memória. O modelo TCC também simplifica o software paralelo, eliminando a sincronização que usa bloqueios de padrões ou semáforos. Através do hardware, o TCC também combina cada gravação de cada região de ocorrência de transações em um pacote para transmitir atomicamente o pacote para um estado de memória que é permanentemente compartilhado. Além do hardware de coerência simplificado, isso significa que há uma redução nas mensagens de baixa dor necessárias e uma eliminação completa de certos protocolos de coerência padrão.

OUTRAS LÍNGUAS

Este artigo foi útil? Obrigado pelo feedback Obrigado pelo feedback

Como podemos ajudar? Como podemos ajudar?