Neste artigo, os autores chamam a atencao a respeito da ineficiencia das tecnicas empregadas atualmente quando do tratamento da competicao das threads pelo acesso as variaveis de memoria compartilhada e a necessidade de se pensar em novas tecnicas que evitem as condicoes de corrida. A pesquisa inicia propondo uma discussao acerca de qual o metodo ou metodos podem ser considerados eficazes e precisos sem que condicoes de corrida afetem o resultado do programa. Os autores destacam problemas de alguns metodos utilizados como Mutex, Barreiras OpenMP, Threads POSIX e Pthreads, que tentam evitar as condicoes de corrida, ora com bloqueios ora com a sincronizacao dos processos, mas sem garantias de bons resultados. Ainda afirmam que, o problema fundamental esta justamente no ponto, em que, varios threads tentando acessar x ao mesmo tempo sem que um thread se certifique que o trabalho de outro thread terminou. Na sequencia, e sem trazer maiores detalhes sobre o assunto, os autores destacam o conceito de Consistencia Sequencial que na visao dos mesmos, e fundamental na compreensao do comportamento das variaveis compartilhadas. Na execucao Sequencialmente Consistente, Um programa Multi-thread e executado, intercalando passos de cada segmento do codigo. Logicamente, o computador executa um passo de um segmento, entao escolhe outro segmento, executa o passo seguinte e assim por diante. Boehm e Adve mencionam que, o modelo de programacao basica e escrever o codigo de tal forma que as condicoes de corrida se tornem impossiveis, pressupondo que a aplicacao segue as regras de consistencia sequencial. Neste trecho e inserido metodo que chamam de variaveis de sincronizacao, que a principio, permitem que threads nao escrevam na mesma variavel. Apesar de nao darem garantias de que as Condicoes de Corrida jamais ocorrerao, os autores sugerem que, quando se escreve um programa, nao ha necessidade de se pensar explicitamente sobre o compilador ou hardware (ordenacao de memoria); mas, ao inves disso, pode-se raciocinar em termos de Consistencia Sequencial, contanto que se sigam as regras para evitar as condicoes de corrida. Tornando mais claro, para tentar garantir uma execucao livre, qualquer secao do codigo que nao contem as operacoes de sincronizacao se comporta como se executado atomicamente (isto e, de uma so vez) sem ser afetado por outros segmentos e sem outra thread ser capaz de ver qualquer valor da variavel que ocorre no meio da secao do codigo. Os autores ainda enfatizam que o emprego de variaveis de sincronizacao e dificil de usar para estruturas de dados complexas uma vez que, nao ha nenhuma maneira facil de fazer varias atualizacoes para uma estrutura de dados em uma operacao atomica. Alem do mais, estas variaveis nao substituem os semaforos.Atividade realizada durante as aulas de Processamento Paralelo Semana passada fechamos mais um evento importante realizado pelo Departamento de Computacao da UNEMAT de Alto Araguaia, a VII SELCOMP 2010.Participei do evento ministrando um mini-curso durante tres dias sobre Diagramas UML. Os 22 alunos que participaram puderam conhecer como essa linguagem visual pode contribuir para o desenvolvimento de software, mais especificamente nas fases de analise de requisitos e projeto. Conseguimos trabalhar dois tipos de diagramas dinamicos,