pafuイーランスクール 学んでできる

メニューへ戻る

記憶管理(実記憶管理・仮想記憶管理)(コンピュータシステム)

学習のポイント

メモリを有効活用するために、実記憶管理の仕組み、仮想記憶管理の仕組みを理解しましょう。

1. 実記憶管理
主記憶装置を実記憶管理する場合は実行するプログラムを有効に配置する必要があります。この配置の「区画方式」には、以下の種類があります。
単一区画方式(固定)
主記憶装置のプログラムの区画は1個だけで1つのプログラムのみ実行します。利用効率がよくありません。
多重区画方式(固定)
主記憶装置を一定の大きさに分割してそれぞれのプログラムを割り当てます。この場合は大きなプログラムが実行できず、小さななプログラムでも1個の区画を使用してしまいます。
可変区画方式(可変)
主記憶装置をプログラムの大きさに合わせて区画を割り当てます。利用効率が非常に高い方法です。ただし、この方法は、小さなプログラムのロードを繰り返していると主記憶の領域に細分化された空き領域である「フラグメンテーション」が多数発生します。これが多数生じると空き領域が細分化されているため、大きなプログラムをロードできません。解法方法としては、ロードされているプログラムを先頭から配置し直すことによってフラグメンテーションを回避します。これを「コンパクション」と言います。コンパクションを行うためには、各命令アドレスの再配置が必要です。これを実現するプログラムを「再配置可能プログラム」と言い、実行前に再配置することを「静的再配置」と言い、実行中に再配置することを「動的再配置」と言います。
スワッピング方式
これは、優先度の高いプログラムをロードするため(スワップインまたはロールイン)、優先度の低いプログラムを中断して補助記憶装置に退避させる(スワップアウトまたはロールアウト)方法を言います。
オーバレイ方式
主記憶装置よりも大きなプログラムを実行する場合、プログラムを「セグメント」単位に分割して補助記憶装置に入れておきます。実行に必要なセグメントのみロードして実行させる方式を言います。
2. 仮想記憶管理
仮想記憶管理
これは、補助記憶装置を利用して実際の主記憶装置よりもはるかに大きな記憶空間の提供を可能にしたものです。
実記憶(実空間)」 実際の主記憶領域。このアドレスを「実アドレス(物理アドレス)
仮想記憶(仮想空間)」 補助記憶装置を利用した仮想記憶領域。このアドレスを「仮想アドレス(論理アドレス)
仮想記憶に分割して配置されたプログラムは必要になった時点で実記憶に割り当てられる「動的再配置」が行われます。この際、「仮想アドレス」を「実アドレス」へ変換するハードウェアを「動的アドレス変換機構(DAT)」と言います。つまり、「命令実行のたびに、仮想アドレスを実アドレスへ変換する」ものです。
仮想記憶方式には以下の2種類の方式があります。

ページング方式
・プログラムを2~4Kの一定の大きさの「ページ」に分割して「実アドレス空間」と「仮想アドレス空間」の双方に動的配置します。この方式では、ページ単位での実アドレス空間と仮想アドレス空間を対応付け(マッピング)する必要があります。実記憶には、「ワーキングセット(ページ数)」が設定されている。
・DATにより仮想アドレスを実アドレスへ変換する。
ページフォルト(実記憶上に必要なページが存在しない)が発生した場合はその必要なページを主記憶へ転送する(ページイン)。
・主記憶上で、最も使用頻度の低いページから順に仮想記憶に戻しページの入れ替え(ページアウト)をする。
・上記のように不要なページと必要なページの出し入れの操作を「ページリプレースメント」と言います。これには以下の2種類があります。
FIFO方式」 一番先に入ったページを一番先にページアウトする。
LRU方式」 最も長い間使用されなかったページをページアウトする方法。
セグメント方式
ページング方式とほぼ同様ですが、単純に一定の大きさに分けるのではなく、「セグメント」という論理的なまとまりでプログラムを分割します。処理形態は同様です。但し、ページイン/ページアウトのことを「ロールイン/ロールアウト」と言います。

問題点
実記憶が小さい場合や、複雑なジャンプが多数使用されている場合、ページの入れ替えが頻繁に行われます。この現象を「スラッシング」と言います。回避方法としては、実記憶を大きくするか、1ページの大きさを小さくしてワーキングセットを増やす。
メニューへ戻る

pafuイーランスクール

pafuイーランスクール 学んでできる