第5回 講義資料

Download Report

Transcript 第5回 講義資料

第5回 メモリ管理(2)
オーバレイ方式
 論理アドレスとプログラムの再配置
 静的再配置と動的再配置
 仮想記憶とメモリ階層
 セグメンテーション
 ページング

オーバレイ方式




仮想記憶機構を持たないコンピュータで使用されて
いた
ユーザがプログラムを論理的なプログラム単位(例
えば手続きやその集まり)に分割
同時に実行されないプログラム単位を必要なときに
主記憶上の同じ位置に読み込んで使用する
手順は、全てユーザが指定
−

プログラムの構造の正確な知識を要する
オーバレイローダ
オーバレイの実行される様子
主モジュール
サブモジュール1
オーバレイ
主モジュール
サブ
モジュール1
サブ
モジュール2
サブモジュール2
論理アドレスとプログラムの再配置

論理アドレス空間
−

論理アドレス
−

実際に割り当てられる物理アドレス(実アドレス)
とは分離・独立したプログラム内で閉じたアドレス
空間
論理アドレス空間におけるアドレス
論理アドレスによってプログラムを記述するこ
とによって、主記憶への割り当てに柔軟性が
出る
再配置可能プログラム
アドレスマッピング(アドレス変換)




物理アドレス(実アドレス):命令やデータの存在す
る主記憶上のアドレス
絶対アドレス:実装されたメモリに対するアドレスで、
値はあらかじめ固定
物理アドレス空間:物理アドレスで形成されるアドレ
ス空間
アドレスマッピング:論理アドレス空間から物理アド
レス空間へのマッピング(写像)
−
−
静的再配置
動的再配置
プログラムの再配置

静的再配置(static relocation)
−
−
−

プログラムは相対アドレス形式で保存
リンク時、またはロード時に全ての命令のオペランドを絶
対アドレス形式に書き換える
再配置操作にハードウェアの支援は必要としない
動的再配置(dynamic relocation)
−
−
各命令の実行時にハードウェアによって論理アドレスから
物理アドレスへの変換(マッピング)が行われる
メモリ詰め直しによって、主記憶の利用効率を向上できる
仮想記憶
主記憶と補助記憶装置(HDDなど)を用いて、
主記憶の大きさにとらわれない仮想的な記憶
装置を提供する機構
 仮想記憶には、構成するデバイスのアクセス
速度、容量に応じたメモリ階層が存在する

メモリ階層
プロセッサ
容量小
高速
キャッシュメモリ
(高速半導体メモリ)
主記憶(半導体メモリ)
低速
補助記憶装置
(磁気ディスクなど)
容量大
仮想アドレス空間、仮想アドレス







プログラムは、補助記憶装置に置かれ、必要なときに主記憶
にロードされる
メモリ階層を意識せずにすむように、統一的な仮想記憶装置
として扱う
プログラムは常に仮想的な記憶装置にアクセスする
仮想アドレス: 仮想記憶装置上の場所を指定するためのア
ドレス
仮想アドレス空間: 仮想アドレスによって形成されるアドレ
ス空間
仮想アドレスは、命令実行時にハードウェアによって物理ア
ドレス(実アドレス)に変換される
一般に仮想アドレスと論理アドレスは1対1に対応する
仮想記憶の種類

単一仮想記憶(single virtual storage)
−

システムで一つの仮想アドレス空間
多重仮想記憶(multiple virtual storage)
−
−
システムで複数の仮想アドレス空間をもつ
cf.) IBM MVS
物理アドレス空間
仮想アドレス空間
n
1
未使用
プログラム
2
n
2
1
アドレス変換表
仮想メモリの手法


プログラムを分割して、分割した単位でアドレス変換
と記憶領域の割り当てを行う
セグメンテーション(可変区画方式)
−
−
−

内部構造に基づいて分割
分割したものを、セグメントという
サイズは、可変
ページング(固定区画方式)
−
−
−
プログラム内部の論理構造とは無関係に、システムが自
動的に分割
分割したものをページという
サイズはシステムで固定
セグメンテーションの仕組み
セグメント番号
0
1
2
セグメントベース
(開始アドレス)
主プログラム
サブルーチン1
サブルーチン2
セグメントテーブル
0
1
1
0
2
1
300K
0
300K
主プログラム
サブルーチン1
550K
データ
サブルーチン2
3
3
4
ライブラリ
データ
4
1
1
900K
550K
存在ビット
900K
ライブラリ
補助記憶
主記憶
セグメンテーションにおける
メモリマッピング


物理アドレス
=セグメントの先頭アドレス(セグメントベース)+セグメント内変位
仮想アドレス=セグメント番号+セグメント内変位
セグメントテーブルベースアドレス
仮想アドレス(2次元アドレス)
b
セグメント番号
セグメント内変位
s
+
d
b セグメントテーブル
s
セグメントベース
存在ビット
セグメント
サイズ
s'
アクセス
保護情報
物理アドレス
+
s' + d
セグメントに対するアクセスの手順
開始
主記憶上にない
セグメントをアクセス
ハードウェアが
セグメントテーブルをひく
アクセス保護情報を読み出す
存在ビット?
NO
アクセスが
許可されている
1
物理アドレスを計算
割り込み発生
YES
存在ビットを調べる
0
セグメントフォルト
割り込み発生
変位<セグメントサイズ
NO
YES
物理アドレスをアクセス
正常終了
割り込み発生
セグメンテーションにおける
空き領域の確保
セグメンテーションは、仮想アドレス空間上で
連続しても、主記憶上では分散することが可
能
 セグメンテーションスワッピング

−
−
メモリの詰め直し
セグメント単位で補助記憶とスワッピング
次回、中間テスト

出題範囲(1回から4回まで)
−
−
−
−
−
−

出題形式:
−
−



OSの基礎、用語、機能
プロセス管理
CPUの管理
例外、割込み処理
ブートとシャットダウン
メモリ管理(固定区画方式、可変区画方式など)
用語穴埋め(OSの基礎、CPUの管理、例外・割込み処理、ブートと
シャットダウン)
記述式(プロセス管理、メモリ管理)
出題数; 4問中、3問回答(1問は選択問題)
配点: 30点
テスト時間: 40分