Os detalhes são complexos; em um único processador, é simples o suficiente para implementar algum equivalente de "bloquear, modificar, desbloquear" no nível do microcódigo - ou outras técnicas.
Depois de ter vários processadores, o assunto fica complexo, especialmente em vista dos efeitos de cache. Protocolos como MSI e derivados MESI , MOSI , MOESI , de volta isso em processadores Intel modernos.
A WikiPedia tem um bom resumo em Coerência de cache também.
Quanto a um mutex vs uma instrução atômica: um mutex é, mais ou menos, um acordo de que um bit de memória será usado para atomicamente permitir que uma e apenas uma pessoa o configure para um estado específico. Isso significa que ele pode usar operações atômicas para proteger operações não-atômicas - um protocolo que é concordado por ambos os lados, para fingir que você pode ser atômico em uma escala maior do que você realmente pode.