メモリコンパクションとデフラグテーションの違い
メモリコンパクションとデフラグテーションの違い
本記事では、メモリコンパクションとデフラグテーションの違いを紹介します。
メモリコンパクションとデフラグテーションはどちらも断片化(フラグメンテーション)を解消するための手法です。
簡単に説明すると、
メモリコンパクション:メモリで発生した断片化を解消する手法
デフラグテーション :ハードディスクなどのストレージ機器で発生した断片化を解消する手法
言葉での説明ではイメージが難しいと思うので、「メモリコンパクション」と「デフラグテーション」を図で紹介します。
本記事でメモリコンパクションを説明し、次回の記事でデフラグテーションを説明します。
メモリコンパクション
メモリの断片化
プログラム内蔵方式という方式を採用しているコンピュータは、プログラムを実行するとき補助記憶装置に保存してあるプログラムを主記憶装置(メインメモリ)にロードしてから実行します。
ロードしたプログラムの処理が終了すると、そのプログラムのロードしていた領域は空き領域になります。
以下の図ではプログラムBとDの処理が終了し、空き領域に変っています。
結果として、上図のように主記憶装置に11MBの空き領域があるにもかかわらず、空き領域がバラバラになっているため、「プログラムE」をロードすることができません。
このような現象を「断片化(フラグメンテーション)」といいます。
メモリコンパクション
メモリの断片化を解消する手法がメモリコンパクションであり、メモリコンパクションでは、下図のように主記憶装置にロードされているプログラムを再配置することで、分割されてしまった空き領域を連続したひとつの空き領域にします。
これにより、バラバラに分割された空き領域が、連続した一つの領域となります。
このように、メモリコンパクションを行うことで、メモリで発生した断片化を解消することができます。