実記憶管理〜基本情報技術者合格のための学習法〜

キーボード基本情報

実記憶管理

 プログラム内蔵方式をとる現在のコンピュータでは、プログラムを補助記憶装置から主記憶領域にロードしてから実行することになります。

 マルチプログラミング環境だと、このプログラムが、同時に複数実行されることになりますから、当然主記憶装置の上にはそれらが全てロードされることになります。

しかし、主記憶の容量は限られていますので、補助記憶装置からの全てのプログラムやデータを一度主記憶上にロードすることは容量的にできません。
なので、効率よく主記憶上にロードする仕組みが必要になってきます。

補助記憶装置から主記憶上にロードするにはデータ転生の時間が必要となるので、できるだけ、データ転送の時間を少なく管理する必要があります。
またプログラムが、終了すると割り当てた主記憶領域を開放して、他のプログラムがロード出来るようにし、限られた記憶装置領域の有効利用していきます。
このように、主記憶領域へプログラムやデータを割り当てたり、主記憶領域を開放することを、実記憶管理と呼びます。

固定区画方式

主記憶に固定長の区画を設けて、そこにプラグラムを読み込む管理方式を、固定区画方式と呼びます。また、

パーティション
予め区切った記憶領域

とも呼びます。
固定区画方式には単一区画方式多重区画方式とがあります。

単一区画方式

主記憶装置のプログラムの区画は1個だけで1つのプログラムのみ実行します。
区画が一つだけであり、最も簡単な方式です。

一つしかプログラムがロードできませんので、マルチプログラミングには使えません。

多重区画方式

主記憶装置を複数の区画を設けて、それぞれのプログラムに割り当てます

単一区画方式より少し管理が複雑になりますが、複数のプログラムを処理できます。
区画サイズ以上のプログラムは複数の区画をまたがって実行し、区画サイズより小さなプログラムでも1個の区画を使用してしまいます。
いずれの方法も管理が簡単ですが、それぞれのプログラムが使用する領域余った、使用されていない部分が無駄になります。

固定区画方式

可変区画方式

主記憶を最初に固定長で区切ってしまわず、プログラムをロードするタイミングで必要なサイズに区切る管理方式を、可変区画方式と呼びます。

プログラムが必要とする大きさで区画を区切り、そこにプログラムをロードします。
この方式だと、区画内に余剰スペースはできないので、固定区画方式よりも主記憶の利用効率は良くなります。
ただし、この方法は、区画サイズより小さなプログラムのロードを繰り返していると主記憶の領域に空き領域が細分化され利用しにくくなる「フラグメンテーション」が発生します。

可変区画方式

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

可変区画方式で実行する場合、主記憶上にプログラムを隙間なく詰め込むことができますが、必ずしも詰め込んだ順番にプログラムが終了するとは限りません。
その場合、主記憶の空き容量自体がプログラムの実行に足るサイズであっても、それを連続した状態で確保することができなくなります。
この現象をフラグメンテーション(断片化)と呼びます。

このフラグメンテーションを解消するためには、ロードされているプログラムを再配置することによって、細切れである空き領域を再配置により、連続した1つの領域にする操作を、メモリコンパクション又は

ガーベージコレクション
「ゴミ集の収集」という意味の言葉であり、プログラムが使用しなくなった無駄な空き領域をゴミとみなしてこのように呼びます。

と呼びます。

ハードディスクでも同じような現象が発生します。
ハードディスクのフラグメンテーション(断片化)はデフラグと呼びます。
メモリの場合はメモリコンパクション又はガーベージコレクションと呼びます。

可変区画方式

フラグメンテーション

オーバーレイ方式

最近では一つのプログラムが多機能となり、プログラムサイズも膨大となっているので、オーバーレイ方式では、プログラムをセグメントという単位に分割して、その時に必要なセグメントだけを主記憶上にロードして実行します。

 セグメントは、大きなプログラムの機能を分割したものなので、セグメントの中には、全体を制御するルートセグメントや、各セグメントから共通で、使用される共通セグメントがあります。
 これらのセグメントは、プログラムが完了するまで常にメモリにロードされた状態となります。

オーバーレイ

スワッピング方式

マルチプログラム環境では、優先度の高いプログラミングによる割り込みなどが発生し、空き領域がない場合、現在実行中のプログラムを中断させて切り替えを行いまが、それができない場合は、スワップアウトと、スワップインという処理を行います。

スワップアウト(ロールアウト)

優先度の低いプログラムが使用していた主記憶領域の内容を、いったん補助記憶装置に丸ごと退避させることで空き領域を作ります。

スワップイン(ロールイン)

退避させたプログラムに再びCPUの使用権が与えられる時に、退避させた内容を補助記憶装置から主記憶へとロードし、中断箇所から処理を再開します。

スワップアウトとスワップインを合わせた方式を、スワッピングといいます。
スワッピングが発生すると、主記憶の代用として低速な補助記憶装置へのアクセスを行うことになるので、処理速度が極端に低下するので注意が必要です。

コメント

タイトルとURLをコピーしました