Запись данных в ОЗУ является атомарной. Если два процессора пытаются выполнить запись в одно и то же место одновременно, контроллер памяти определит порядок записи. Пока один ЦП выполняет запись в память, другой ЦП будет останавливаться столько циклов, сколько необходимо, пока первая запись не будет завершена; тогда он перезапишет свое значение. Это то, что известно как состояние гонки .
Записи, которые меньше, чем собственный размер слова, не являются атомарными - в этом случае ЦП должен прочитать старое значение памяти в регистр, записать новые байты в регистр, а затем записать это новое значение обратно в память .
У вас никогда не должно быть кода, который зависит от этого - если у вас есть несколько процессоров, которые пытаются одновременно записать в одну и ту же область памяти, вы делаете что-то не так.
Другим важным фактором является проблема когерентности кэша . Каждый процессор имеет свой кэш. Если процессор записывает данные в свой кэш, другие процессоры должны быть осведомлены об изменении этого значения данных, если они хотят его прочитать.