search
LoginSignup
0

More than 1 year has passed since last update.

posted at

主記憶管理、仮想記憶管理

主記憶管理

 限られた主記憶空間を効率よく使えるようプログラムに割り当てるのが、主記憶管理の役割
固定区画方式
 主記憶に固定長の区画(パーティション)を設けて
 そこにプログラムを読み込む方式また、全体を単一の区画とする単一区画方式
 複数の区画に分ける多重区画方式がある
 図80.png

可変区画方式
 主記憶を最初に固定長で区切ってしまうのではなくプログラムをロードする
 タイミングで必要なサイズに区切る管理方式が可変区画方式という
 この方式はプログラム必要とする大きさで区画を作り、そこでプログラムをロードする
 図81.png

オーバーレイ方式
 どれだけ区画を効率よく配置できるようにしても、実行したいプログラムのサイズが
 主記憶の容量を超えていたら、ロードしようがない、これを可能にするための工夫が
 オーバーレイ方式という、この方式では、プログラムをセグメントという
 単位に分割しておいて、その時に必要なセグメントだけを主記憶上にロードして実行する

スワッピング方式
 マルチプログラミング環境では優先度の高いプログラムによる割込みなどが発生した場合
 現在実行中の優先度低いプログラムが使っている主記憶領域の内容をいったん補助記憶装置に
 丸ごと退避させるやり方が**スワップアウト++といい再びCPUの使用権が与えられるときは、
 退避させた内容を補助記憶装置から主記憶へとロードしなおして、中断箇所から処理を再開
 することをスワップインという。

プラグメンテーションとメモリコンパクション
 主記憶の秋容量自体がプログラムの実行に足るサイズであったとしてもそれを錬ぜくした状態で確保する
 ことができないこの現象をフラグメンテーション(断片化)と呼ぶまたフラグメンテーションを解消する
 ためには、ロードされているプログラムを再配置することによって細切れ状態にある空き領域を連続した
 ひとつの領域にすることをメモリコンパクションまたはガーベジコレクションと呼ぶ
図82.png

仮想記憶管理

 仮想記憶は、主記憶や補助記憶の存在を隠蔽することで、
 広大なメモリ空間を自由に扱えるようにするもの
 仮想記憶は主記憶装置補助記憶装置を合わせて作ったメモリ空間

なぜ仮想記憶だと自由なのか

仮想記憶というのは「実記憶などの物理的な存在を隠蔽して、仮想空間にマッピングしてみせる」ための技術
 仮想アドレスから実アドレスへの変換処理は、メモリ変換ユニット(MMU:Memory Management Unit)という
 ハードウェアが担当する。この仕組みを動的アドレス変換機構と呼ぶ

ページング方式
 仮想アドレス空間を固定長の領域に区切って管理する方式
 ページング方式では、プログラムを「ページ」という単位に分割して管理する。
 ※1ページのサイズは4キロバイトが一般的
 仮想記憶と実記憶との対応付けは、ページテーブルという表によって管理される。
 表によって、仮想ページ番号が実記憶上のどのページと結びついてるかが確認できる。
 目的のページが実記憶上にないと判明したら、補助記憶から実記憶へとそのページが読み込まれる。
 補助記憶から実記憶へのページ読込みをページインと言う
 ページインしようとしたら、すでに実記憶がいっぱいだった場合、実記憶から補助記憶へと
 ページを追い出すことをページアウトと言う

ページの置き換えアルゴリズム

 
 FIFO(First In First Out)方式
 最初にページインしたページを追い出して対象にする。
 図83.png

 LIFO(Last In First Out)方式
 最後にページインしたページを追い出し対象にする。
 図84.png

 LRU(Least Recently Used)方式
 もっとも長い間参照されてないページを追い出し対象にする。
 図85.png

 LFU(Least Frequently Used)方式
 もっとも参照回数の少ないページを追い出し対象にする。
 図86.png

以上

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0