目次(まとめ)

◾️ メモリにロードする方式:固定区画方式と可変区画方式

◾️ メモリコンパクションによりフラグメンテーションに対処する

◾️ 参考文献


こんにちは、みっちゃんです。

今回の記事では、複数のタスクを並行して実行するマルチプログラミング環境において、主記憶装置(メモリ)上に複数のプログラムを読み込む(ロードする)方式と、起こりうる問題について紹介します。

メモリにロードする方式:固定区画方式と可変区画方式

プログラムを実行するためには、補助記憶装置(ハードディスクなど)に保存されているプログラムを主記憶装置(メモリ)に読み込む(ロードする)必要があります。

ロードする方法には、「固定区画方式」と「可変区画方式」があります。

それぞれの方法の詳細は、名前の通りです。

固定区画方式
あらかじめ固定された区画がメモリ上に準備されているので、それぞれの区画にプログラムを読み込みます。プログラムの容量に対して、準備された区画の容量が小さければロードできない問題が生じます。逆に、準備された区画の容量が大きければ、メモリ上に使われない領域ができるという問題が生じます。

可変区画方式
ロードするプログラムの容量に応じて、区画の大きさを変更します。固定区画方式で生じる問題を解決することができます。

メモリコンパクションによりフラグメンテーションに対処する

メモリ上に複数のプログラムをロードして実行しますが、当然、同じタイミングで全てのプログラムの実行が終了するわけではありません。

つまり、メモリ上から終わったプログラムが順に抜けていき、抜けた箇所が空き領域になるわけです。

この空き領域の容量にフィットするプログラムを次にロードできればいいですが、容量の問題でロードできない問題も生じます。

このような問題を「フラグメンテーション」と呼んでいます。断片的に空き領域が生じている状態を示しています。

そこで、散らばって存在する空き領域をまとめて、大きな空き領域を作り出そうという操作を行います。

この操作を「メモリコンパクション」と呼んでいます。

参考文献

きたみりゅうじ「キタミ式イラストIT塾 応用情報技術者」技術評論社