コピーオンライト【CoW】Copy-on-Write
概要

複数のプロセスやスレッドが同一のデータ領域を参照する際、最初は物理的なコピーを作らず、参照カウントなどの管理情報を用いて同じ実体を共有する。いずれかが書き込み操作を行おうとすると、その瞬間に新しい領域が割り当てられ、元のデータ内容が複製される。読み取り処理のみでは複製を作らないため、メモリ使用量や処理時間を節約できる。
オペレーティングシステム(OS)のメモリ管理では、プロセス生成時に利用されることがある。例えば、UNIX系OSのfork処理では、親プロセスのメモリ空間を子プロセスに即座に丸ごとコピーするのではなく、コピーオンライトによりページ単位で共有し、実際に書き換えが起きた部分のみを複製する。プロセス生成の高速化とメモリ消費の削減に寄与している。
ファイルシステムや仮想化技術でも、スナップショット機能の実現などに応用されている。バックアップを取る際に、すべてのデータを物理的に複製するのではなく、変更があった箇所だけを別保存することで、保存容量の節約と高速なバックアップを両立している。