第7章 記憶管理

主記憶の使い方
最も単純な方式:
OSが一部を使い,残りを唯一のアプリケーションだけが利用.
実現が簡単だが,プログラムを切り替える度に主記憶にロ−ドしなければならないため,非効率的.
→ 同時実行しようとするプログラムを出来るだけ多く主記憶にロ−ドしておくほうが効率が高い.

主記憶を分割して複数のプログラムに割り当てる方法:
固定区画方式 予め主記憶を幾つかのサイズに分割
可変区画方式 空き領域から必要に応じて分割利用

主記憶の内部断片化:個々のプログラムに割り当てられた領域内で利用されない無駄領域が生じること
主記憶の外部断片化:プログラムに割り当てられてない主記憶領域が散在して,プログラムの実行に利用することが出来ない状況,メモリ詰め直し (memory compaction)により解消

主記憶の空き領域管理
空き領域探索方式
初適合(first-fit):最初に見つかった十分な大きさの空き領域へ割り当て
最適適合(best-fit):必要最小限の大きさの領域を探して割り当て
最悪適合(worst-fit):最大の空き領域を割り当て

空き領域の状態管理
リスト方式:空き領域の情報をリスト構造のデータで保持する.
ビットマップ:メモリを固定サイズの小さな領域に分割し,各領域が空いているか使用中かを0と1で表現したデ−タを保持する方式

スワッピング
スワップアウト(swap out)
:入出力待ちなどで実行中のプログラムが待ち状態に入った場合に,該当プログラムが利用している主記憶内容を補助記憶(ディスク)へ退避させ,主記憶の空き領域を作ること.
スワップイン(swap in):補助記憶に退避されていたプログラムを主記憶上に読み込んでメモリ上の実行状態を復旧させること.
プロセスを切り替えるたびにスワップを行うと効率が悪い(ディスク入出力は極め
て時間がかかる)ので,実行可能なプログラムの幾つか複数を主記憶に読み込んでおいて,その間でCPUを切り替える(短期スケジュ−リング).
これら主記憶上のプログラムは適当な周期でスワップアウトの対象となり,代りに二次記憶上の他のプログラムがスワップインされる(長期スケジュ−リング).

オーバーレイ
実行すべきプログラムを論理的に幾つかの部分(モジュール)に分割し,各部分を実行する主記憶領域を重ねるように割り当てて,必要な主記憶総量を削減する.
モジュールの分割はユーザがプログラム作成時に指示



表紙ページへ戻る