Resumo
O surgimento de arquiteturas computacionais multiprocessadas impõe novas dificuldades no desenvolvimento de software. Dentre estas dificuldades está a necessidade de sincronização dos fluxos de execução de forma a garantir acessos ordenados à memória compartilhada. A sincronização tradicionalmente é realizada com o uso de travas de exclusão mútua ou semáforos, porém estas estruturas são i…