各プログラムとデータが使用する主記憶装置の領域の確保および解放の管理
1.管理方式
固定区画方式
主記憶を固定長の区画として扱う管理方式
管理は簡単だが、各プログラムが使用する領域は可変なので
使用されない部分が無駄になって残る
単一区画方式:区画が一つだけで最も簡単な方式
多重区画方式:複数の区画を各プログラムに割り当る
管理が複雑になるが、複数のプログラムに対応できる
可変区画方式
主記憶装置に区画を設けて、その領域にプログラムをロードする方式
必要に応じて区画のサイズを変化させる
区画のサイズを変化させることで、主記憶装置の利用効率を向上させる
仕切り方式
主記憶を可変長の領域として扱う管理方式
主記憶装置の利用効率が上がる
実行が終了すると、使用していた領域は開放される
空き領域は断片化され利用し辛くなる

2.フラグメントメンテーション(fragmentation)
フラグメントメンテーション(断片化、破片化)
プログラムを実行して、領域の確保と開放を繰り返しているうちに、
領域が占有化されて再利用しにくくなる
デメンテーションまたはコンパクション
使用中の領域を移動させて隣り合わせに配置し直し、
縮小化されていた空き領域を隣り合わせにまとめて再利用可能にする
3.ガベージコレクション(garbage collection)
「ゴミ集め」という意味
プログラムが使用し、削除した主記憶領域を集めて、再利用に備える
プログラムの実行終了時に一括して領域を解放する
解放のためのオーバーヘッドは少ない
きめ細かく再利用はできない
プログラムの実行中に、きめ細かな領域の確保と解放を行う
領域の有効利用ができる
オーバーヘッドが多くなる
専用のプログラムが使用しなくなった領域を開放するので、
領域の有効利用とオーバーヘッドのバランスをとることができる
プログラムの実行終了時の場合
一括して領域を解放するので
オーバーヘッドが少なくて済む
プログラムの実行中の場合
きめ細かな領域の確保と解放を行うので、
領域の有効利用が可能であり、オーバーヘッドが多くなる
4.メモリコンパクション(memory compaction)
空き領域の断片化を解消し、連続した広い空間に再編する
プログラムを実行していると、メモリ領域の確保と解放が繰り返され、
小さな空き領域が飛び飛びの場所に存在するようになる
メモリコンパクションが実行されると、実行中のプログラムを一時停止し
各領域を移動して隙間なく再配置し、単一の広大な空き領域を作り出す