Estudante universitário
Edison Antônio Sahd Filho, Paulo Andrade, Rafael Nakamura de Souza
Sandro Teixeira Pinto (Professor Orientador).
Ciência da Computação
Instituto Filadélfia de Londrina – UNIFIL. Londrina – PR.
Resumo: Com o desenvolvimento da tecnologia de multiprocessamento que veio solucionar o problema de superaquecimento dos processadores Singlecore, surge à necessidade de programar concorrentemente de modo que um código seja executado paralelamente nos diferentes núcleos de processamento do sistema computacional, porém realizar programação concorrente é trabalhoso, pois é necessário ter controle sobre os diferentes blocos de códigos, uma vez que serão executados simultaneamente. Atualmente os programadores utilizam técnicas como semáforos e monitores para realizar o controle das diferentes threads do programa, técnicas que mesmo efetivas, são de difícil implementação e controle.
O conceito de memória transacional engloba técnicas já utilizadas em banco de dados, para tratar acessos simultâneos à memória, uma vez que a memória principal é comum a todos os núcleos de processamento, mantendo assim consistência dos dados contidos nas mesmas.
Existem várias abordagens possíveis para a implementação da memória transacional, são eles: software, hardware e hibrido, que evitam problemas na memória principal, causados pelos acessos simultâneos de múltiplos threads de um mesmo processo aos dados contidos na mesma, causando a inconsistência dos dados relacionados ao processo.
Para demonstração do tema estudado, foi desenvolvido um simulador em linguagem Java, que apresenta a falha e uma possível solução.
Ao termino deste trabalho concluímos que com o avanço da tecnologia, voltado ao processamento de dados, outros componentes ficaram atrasados em termos de tecnologia, comparado a componentes de processamento, tornando o sistema computacional propicio a falhas.
Palavras chaves: transação, memória, gerenciamento, concorrência, multi-core.