Я получаю, что на уровне ассемблера архитектуры набора инструкций обеспечивают операции сравнения и свопинга и аналогичные операции. Однако я не понимаю, как чип может предоставить эти гарантии.
Как мне кажется, выполнение инструкции должно
- Получить значение из памяти
- Сравнить значение
- В зависимости от сравнения возможно сохранить другое значение в памяти
Что мешает другому ядру получить доступ к адресу памяти после того, как первый его выберет, но до того, как он установит новое значение? Контроллер памяти управляет этим?
edit: Если реализация x86 является секретной, я буду рад услышать, как это реализует семейство процессоров.