コンピュータ

可変区画方式とは

可変区画方式

可変区画方式(読み:かへんくかくほうしき)とは、主記憶装置(メインメモリ)にロードするプログラムのサイズに応じて必要なサイズの区画を確保し、その領域にプログラムをロードする方式のことです。

コンピュータはプログラムを実行するとき、補助記憶装置に保存してあるプログラムを主記憶装置にロードしてから実行します。(このような方式をプログラム内蔵方式という)

実記憶管理

補助記憶装置に保存してあるプログラムを主記憶装置にロードするときの方式には「固定区画方式」「可変区画方式」「オーバーレイ方式」「スワッピング方式」などがあります。

それでは、可変区画方式の動きについて図解で説明してきます。

可変区画方式とは

補助記憶装置にあるプログラムを主記憶装置にロードするとき、主記憶装置に区画を設けて、その領域にプログラムをロードします。

可変区画方式は、名前の通り必要に応じて区画のサイズを変化させる方式です。

スポンサーリンク

例えば、補助記憶措置にある10MBのプログラムを主記憶装置にロードするとき、主記憶装置に10MBの区画を作り、その領域にプログラムをロードします。

可変区画方式のイメージ例1

そして、補助記憶措置にある5MBのプログラムを主記憶装置にロードするとき、主記憶装置に5MBの区画を作り、その領域にプログラムをロードします。

可変区画方式のイメージ例2

このように可変区画方式では、ロードするプログラムのサイズに応じて、区画のサイズを変化させることで、主記憶装置の利用効率を向上させています。

フラグメンテーション(断片化)

フラグメンテーションとは、記憶領域の空き領域が小さい単位に分割されてしまい、そのままでは有効活用できない状態のことをいいます。

可変区画方式では、プログラムのサイズに応じて区画のサイズを変化させるため、さまざまなプログラムの実行や終了などを繰り返すことで、フラグメンテーション(断片化)が発生します。

例えば、主記憶装置に次のようなプログラムがロードされているとします。

フラグメンテーションのイメージ例1

そして、「5MBのプログラム」と「6MBのプログラム」の処理が終了すると、「5MBのプログラム」と「6MBのプログラム」をロードしていた領域は、次の図のように「5MB」と「6MB」の空き領域に変わります。

フラグメンテーションのイメージ例2

本来であれば空き領域は「11MB」だが、空き領域が小さい単位に分割(区画が違い)されているため、「5MB」の空き領域には5MB以下のプログラム、「6MB」の空き領域には6MB以下のプログラムしかロードできません。

その結果、主記憶装置には「11MB」の空き容量があるにもかかわらず「6MB」を超えるプログラム(上記図では10MBのプログラム)がロードできないという現象が発生します。

このような現象をフラグメンテーション(断片化)といいます。

メモリコンパクション

フラグメンテーション(断片化)を解消するための手法がメモリコンパクションです。メモリコンパクションは、ロードされているプログラムを再配置します。

次の図はメモリコンパクションのイメージ例です。

メモリコンパクションのイメージ例

メモリコンパクションにより、主記憶装置にロードされていたプログラムが再配置されています。その結果、小さい単位に分割されていた空き領域が、連続した1つの領域になっています。