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

概要

コピーオンライトとは、記憶領域の管理手法の一つで、データの複製が要求された際にすぐには複製せず同じ領域を共有し、変更が発生した時点で初めて複製を作成する方式。「実際に必要になるまで作業を先延ばしにする」という戦略で、メモリ管理やファイルシステムで利用される。
コピーオンライトのイメージ画像

複数のプロセスやスレッドが同一のデータ領域を参照する際、最初は物理的なコピーを作らず、参照カウントなどの管理情報を用いて同じ実体を共有する。いずれかが書き込み操作を行おうとすると、その瞬間に新しい領域が割り当てられ、元のデータ内容が複製される。読み取り処理のみでは複製を作らないため、メモリ使用量や処理時間を節約できる。

オペレーティングシステム(OS)のメモリ管理では、プロセス生成時に利用されることがある。例えば、UNIX系OSfork処理では、親プロセスのメモリ空間を子プロセスに即座に丸ごとコピーするのではなく、コピーオンライトによりページ単位で共有し、実際に書き換えが起きた部分のみを複製する。プロセス生成の高速化とメモリ消費の削減に寄与している。

ファイルシステム仮想化技術でも、スナップショット機能の実現などに応用されている。バックアップを取る際に、すべてのデータを物理的に複製するのではなく、変更があった箇所だけを別保存することで、保存容量の節約と高速なバックアップを両立している。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。