Вам не нужно тестировать и задавать инструкцию для блокировки взаимного исключения, если это то, что вы спрашиваете.
Дейкстра описал первый известный мне алгоритм взаимного исключения в 1965 году. Название статьи было «Решение проблемы в управлении параллельным программированием», найдите в Google копию рядом с вами. Первоначальный алгоритм не требовал никакой специальной поддержки со стороны аппаратного обеспечения, но предоставление элементарных инструкций в ЦП значительно повышает производительность.
Test-and-set, атомарный своп и load-connected + store-conditional - все это общие примитивы для процессоров. Все можно использовать для реализации взаимного исключения, которое затем можно использовать для реализации любой семантики блокировки, которую вы хотите.