Атомарность — понятие в информатике и философии¶
Атомарность — свойство системы, процесса или действия быть неделимым, то есть выполняться либо полностью, либо не выполняться вовсе, без возможности промежуточного состояния. Термин происходит от латинского atomus (греч. ἄτομος — «неделимый») и применяется в информатике, философии, лингвистике и теории вероятностей. В информатике атомарность описывает операции, которые не могут быть прерваны или разделены на подоперации с наблюдаемыми побочными эффектами.
¶Атомарность в информатике
¶Транзакции баз данных
В теории баз данных атомарность — одно из свойств модели ACID (Atomicity, Consistency, Isolation, Durability). Транзакция, обозначаемая как атомарная, выполняется целиком: если все её шаги завершились успешно, изменения фиксируются; если хотя бы один шаг завершился ошибкой, все выполненные изменения откатываются (rollback). Пример классической атомарной операции — перевод денежных средств: списание со счёта отправителя и зачисление на счёт получателя происходят как единое неделимое действие, даже если система прерывается между ними.
Механизм реализации атомарности в СУБД основан на журналировании (write-ahead logging): перед изменением данных в журнал записывается информация о предстоящей операции, что позволяет восстановить согласованное состояние после сбоя.
¶Многопоточность и параллельные вычисления
В многопоточном программировании атомарной называют операцию, которая выполняется как единое целое относительно других потоков: ни один другой поток не может наблюдать её промежуточное состояние. Такие операции реализуются с помощью атомарных примитивов (атомарные инкременты, compare-and-swap) и блокировок. Недостаток синхронизации приводит к состояниям гонки (race condition), когда результат программы зависит от порядка выполнения потоков.
¶Файловые системы и атомарная запись
Файловые системы предоставляют атомарные операции записи, гарантирующие, что файл либо остаётся в прежнем состоянии, либо полностью переходит в новое. Классический пример — атомарное переименование файла (системный вызов rename в POSIX), которое не может быть прервано на середине. Это свойство широко используется при обновлении конфигурационных файлов и программных пакетов.
¶Атомарность в философии
В философской традиции атомарность связана с атомизмом — учением о неделимых первоосновах материи. Античные атомисты Демокрит и Левкипп учили, что вселенная состоит из атомов — неделимых частиц, движущихся в пустоте. В Новое время атомистические идеи развивал Пьер Гассенди, а в XX веке атомарность стала предметом анализа в логике и философии языка: Л. Витгенштейн в «Логико-философском трактате» рассматривал атомарные (элементарные) высказывания как основу логической структуры языка, от которых зависит истинность сложных предложений.
¶Атомарность в лингвистике
В лингвистике атомарным называют высказывание, не содержащее логических связок (союзов «и», «или», «если» и т. п.), то есть предложение, выражающее одно простое суждение. Атомарные высказывания служат базой для построения сложных предложений в пропозициональной логике.
¶Атомарность в теории вероятностей
В теории вероятностей атомарным называют событие, вероятность которого может быть вычислена непосредственно, без разбиения на более простые исходы. В дискретных пространствах вероятностей атомарными являются события, соответствующие отдельным элементарным исходам.
¶См. также
- ACID
- Транзакция (базы данных)
- Атомизм
- Состояние гонки
- Логика высказываний
¶Источники
- Кеннет А. Дайтс. «Системы баз данных: проектирование и реализация»
- Эдгар Кодд. «A Relational Model of Data for Large Shared Data Banks» (1970)
- Л. Витгенштейн. «Логико-философский трактат»
- Д. Книга. «Искусство программирования», том 1
