>Читал в литуратуре, но пока не догоняю смысл терминов "атомарный", "атомарность". Может кто на пальцах изложить
Атомарный - значит неделимый, т.е. атомарная операция или произойдет вся или совсем ничего не произойдет, она не может выполнится наполовину и никто не может влезть посреди выполнения.
Два основных применения, на пальцах:
1. Транзакции. Это когда операция длинная, ее нельзя прервать, промежуточное состояние содержит неверные данные. Классических пример - перевод денег в банке:
а) забрать 100 баксов с одного счета;
б) положить 100 баксов на другой счет.
Если после выполнения а) пропадет свет, то при включении сервера надо полностью отменить операцию, иначе деньги исчезнут.
2. Параллельное выполнение. Если тебе надо единолично воспользоваться, к примеру, неким файлов, то ты:
а) проверяешь, свободен ли файл;
б) забираешь его себе.
Если одновременно с тобой еще кто-то хочет получить этот файл, то возможна ситуация:
а-1) ты проверяешь, свободен ли файл - свободен, можно продолжать;
тут система вдруг переключилась на второй процесс
а-2) он проверяет, свободен ли файл - свободен, можно продолжать;
б-2) он забираешь файл себе.
тут система переключилась на твой процесс
б-1) ты забираешь файл себе.
В итоге файл разрушен - в него пишут два процесса.
Что бы этого не случилось, система должна гарантировать атомарность операции "проверить-взять".