原子性 【atomicity】 不可分性 / アトミック性
概要
原子性(atomicity)とは、ある物事が、それ以上細かい単位や要素に分割されない、またはできない性質のこと。トランザクションの原子性
データベースシステムのトランザクション処理などで、一連のものとして定義された処理がすべて完了するか、一つも実行されないかのいずれか状態になることを原子性という。
例えば、入出金処理で「出金処理が完了したところでシステム障害が生じたので入金はされなかった」といった事態が発生しては困るため、一連の処理を一体的に管理して原子性を保証する仕組みが必要となる。
そのために用いられるのがトランザクション処理で、一つのトランザクションを構成する複数の処理の進捗や変更内容を逐一記録しておき、途中で異常が発生したら完了済みの処理結果も破棄して実行前の状態に戻す処理を行う。
並行処理のアトミック性
コンピュータ上のプログラムの動作で、密接に関連する複数の処理が外部から一つの操作に見え、途中の状態を観測したり介入できない性質を、操作のアトミック性、不可分性などという。
マルチタスクやマルチスレッド、マルチプロセッサなど複数のプログラムの流れが並行して実行されている状況や、実行中のプログラムに対する割り込み処理などで重要となる。
例えば、ある共有メモリ領域にある二つのデータを書き換えるプログラムが動作しているとき、一つ目を書き換えたところでその領域を読み込むプログラムに実行が切り替わってしまうと、処理途上の矛盾した内容のデータを読み込んでしまい処理に支障をきたす。
このような場合に、何らかの排他制御を行って書き換え中の外部からの読み取りを禁じることで、データの書き換えを一体的に処理することができる。
(2020.4.16更新)