Я пытаюсь понять атомарные и неатомарные операции. По отношению к операционной системе, а также по отношению к C. Согласно странице википедии здесь
Рассмотрим простой счетчик, который отличаетсяпроцессы могут увеличиваться.
Неатомарная
Наивная неатомарная реализация:
читает значение в ячейке памяти;
добавляет единицу к значению;
записывает новое значение обратно в ячейку памяти.
Теперь представьте, что два процесса работают с приращением одной общей памяти:
первый процесс читает значение в ячейке памяти;
первый процесс добавляет один к значению;
, нопрежде чем он сможет записать новое значение обратно в ячейку памяти, он приостановлен, и второй процесс может быть запущен:
второй процесс считывает значение в ячейке памяти, то же значение, которое прочитал первый процесс;
второй процесс добавляет единицу к значению;
второй процесс записывает новое значение в ячейку памяти.
Как вышеописанная операция может быть сделана в форме атмо.Мое понимание атомарной операции состоит в том, что любая вещь, которая выполняется без прерывания, является атомной.Так, например,
int b=1000;
b+=1000;
Должна быть атомарной операцией, согласно моему пониманию, потому что обе инструкции выполняются без прерывания, как я узнал от кого-то, что в C нет ничего известного как атомарная операция, так что вышезаявления не атомарны.Итак, что я хочу понять, так это то, что атомарность отличается, когда речь идет о языках программирования, чем операционные системы?