| Description: |
Atualmente existe um grande número de processadores multi-core, e para se obter melhor desempenho dos programas nestes processadores, o modelo de programação mais utilizado é o multi-threaded. Este modelo utiliza uma combinação de bloqueios para o controle de concorrência entre as threads, mas muitos problemas podem surgir com a utilização errada desta técnica, tal como deadlocks e starvation. Em reação a estes problemas apresentados, o modelo transacional de sincronização tem recebido atenção como um modelo de programação alternativo, usando como base o conceito de transação para garantir sincronismo entre threads concorrentes. Este modelo tira do programador a responsabilidade sobre o controle de sincronização, e problemas como deadlocks e starvation são evitados. Neste trabalho implementamos o STM Builder, uma plataforma para desenvolvimento de estratégias para Memória Transacional em Software, que foi criada com a modulariza- ção da SwissTM. Junto com o STM Builder, desenvolvemos um framework de testes para a avaliação das implementações realizadas, que executou os testes e gerou todos os grá cos utilizados no trabalho automaticamente. O framework de testes utiliza os benchmarks STMBench7, STAMP e o Microbenchmark de Árvore Rubro-Negra. Os grá cos gerados pelo framework utilizam o gnuplot. O STM Builder é capaz de testar várias variações no mesmo código, perdendo pouco tempo com novas implementações e testando diversas formas da mesma implementação rapidamente. No STM Builder há algumas variações do modelo transacional de sincroniza- ção em software da SwissTM. Implementamos e testamos: novos gerentes de contenção, como o RandomizedRounds (RR), gerenciamento de contenção de uma e duas fases, diferentes formas de recuo de uma transação, e a técnica de invalidação no momento da efetivação (Commit-time invalidation ). Implementamos uma plataforma para desenvolvimento e avaliação de estratégias para Memória Transacional em Software, que é formada pelo STM Builder e pelo framework de testes, que comprovou ... |