可変区画方式
可変区画方式(読み:かへんくかくほうしき)とは、主記憶装置(メインメモリ)にロードするプログラムのサイズに応じて必要なサイズの区画を確保し、その領域にプログラムをロードする方式のことです。
コンピュータはプログラムを実行するとき、補助記憶装置に保存してあるプログラムを主記憶装置にロードしてから実行します。(このような方式をプログラム内蔵方式という)
補助記憶装置に保存してあるプログラムを主記憶装置にロードするときの方式には「固定区画方式」「可変区画方式」「オーバーレイ方式」「スワッピング方式」などがあります。
可変区画方式とは
補助記憶装置にあるプログラムを主記憶装置にロードするとき、主記憶装置に区画を設けて、その領域にプログラムをロードします。
可変区画方式は、名前の通り必要に応じて区画のサイズを変化させる方式です。
スポンサーリンク
例えば、補助記憶措置にある10MBのプログラムを主記憶装置にロードするとき、主記憶装置に10MBの区画を作り、その領域にプログラムをロードします。
そして、補助記憶措置にある5MBのプログラムを主記憶装置にロードするとき、主記憶装置に5MBの区画を作り、その領域にプログラムをロードします。
このように可変区画方式では、ロードするプログラムのサイズに応じて、区画のサイズを変化させることで、主記憶装置の利用効率を向上させています。
フラグメンテーション(断片化)
フラグメンテーションとは、記憶領域の空き領域が小さい単位に分割されてしまい、そのままでは有効活用できない状態のことをいいます。
可変区画方式では、プログラムのサイズに応じて区画のサイズを変化させるため、さまざまなプログラムの実行や終了などを繰り返すことで、フラグメンテーション(断片化)が発生します。
例えば、主記憶装置に次のようなプログラムがロードされているとします。
そして、「5MBのプログラム」と「6MBのプログラム」の処理が終了すると、「5MBのプログラム」と「6MBのプログラム」をロードしていた領域は、次の図のように「5MB」と「6MB」の空き領域に変わります。
本来であれば空き領域は「11MB」だが、空き領域が小さい単位に分割(区画が違い)されているため、「5MB」の空き領域には5MB以下のプログラム、「6MB」の空き領域には6MB以下のプログラムしかロードできません。
その結果、主記憶装置には「11MB」の空き容量があるにもかかわらず「6MB」を超えるプログラム(上記図では10MBのプログラム)がロードできないという現象が発生します。
このような現象をフラグメンテーション(断片化)といいます。
メモリコンパクション
フラグメンテーション(断片化)を解消するための手法がメモリコンパクションです。メモリコンパクションは、ロードされているプログラムを再配置します。
次の図はメモリコンパクションのイメージ例です。
メモリコンパクションにより、主記憶装置にロードされていたプログラムが再配置されています。その結果、小さい単位に分割されていた空き領域が、連続した1つの領域になっています。