Transcript 第7回 講義資料
第7回
授業計画の修正
中間テストの解説・復習
前回の補足(クロックアルゴリズム・PFF)
仮想記憶方式のまとめ
−
−
セグメンテーションとページングを組み合わせた
手法
仮想記憶におけるプログラムの実行
特別課題について
授業計画(修正版)
回
項目
回
項目
第1回
OSの基本概念
第8回
入出力装置
第2回
プロセス管理
第9回
プロセス間通信と排他
制御
第3回
CPU管理と
割り込み処理
第10回
データ管理とファイル
制御
第4回
メモリ管理(1)
第11回
ネットワーク管理、通
信制御
第5回
メモリ管理(2)
第12回 期末テスト
第6回
メモリ管理(3)
第7回
復習とメモリ管理
(4)
試験
第13回 OSの動向
課題
出題
課題
提出
セグメンテーションの特性
セグメンテーション → 可変区画方式
セグメンテーションの利点
−
−
−
−
セグメントの共用が可能
セグメント間の動的リンキング
セグメントの保護
セグメントの動的な拡張
セグメンテーションの欠点
−
−
外部断片化
領域管理が複雑
ページングの特性
ページング → 固定区画方式
利点
−
−
−
−
主記憶領域の利用効率
管理の容易さ
マルチプログラミングの度合いを向上可能
内部断片化も、ページサイズによって調整可能
欠点
−
−
内部断片化...最後のページ内に空きが生じる
セグメントのように、共用、動的リンキング、保護が難しい
セグメンテーションページング
仮想記憶を実現するための基本機構
−
プログラム中の分割
−
ページング
セグメンテーション
ページ化セグメンテーション
(paged segmentation)
−
−
セグメント毎にページングを適用
各セグメントは独立したページテーブルを持つ
ページ化セグメンテーションにおける
セグメントテーブル
アドレス変換
ベースレジスタ
b
仮想アドレス
セグメント番号 仮想ページ番号
+
s
b
s
p
変位
d
セグメントテーブル
ページテーブルの
ベースアドレス
+
s'
セグメントs のページテーブル
s'
p
物理アドレス
物理ページ番号
p'
p'
d
補助記憶における領域管理
バッキングストア ...仮想記憶を実現するために
補助記憶(HDDなど)上に確保されるプログラムや
データの実体を置いておくための領域
−
スワップ領域、ページング領域ともいわれる
アクセス効率重視の割り当て
−
−
−
−
プログラム全体を連続割り当て
複数ブロックを連続割り当て
スワップマップ(Unix), 外部ページテーブル(MVS)
ファイルシステムとは別に設計される
cf.) ファイルシステムでは、補助記憶の効率的な利用が重視
仮想記憶におけるプログラムのロード
ロード手法
−
−
1.
2.
プログラム全体をバッキングストアにロード
ページフォルト時にファイルからページを直接
主記憶に読み込む
プログラムのロード手順
プログラムをバッキングストアに読み込む
ページテーブルを作成し、全ての存在ビット
を0にする
メモリマップトファイル
(memory-mapped file)
1.
2.
ファイルそのものを、仮想記憶のバッキングストアとして利用する方式
ファイルの内容を仮想アドレス空間に取り込む
ファイルの内容を先頭から順に仮想アドレスに割り付ける
手順
マップ ...ページテーブルの設定
以後、通常のロード・ストア命令でファイルにアクセス可能
利点
−
−
−
ファイルも仮想記憶として扱える(プログラミングしやすい)
ページングの機構を使用してユーザのアドレス空間とファイルとの間で直
接データのやりとりが可能
ファイルの共用が、仮想アドレス空間上で可能
Sytem V R4, Mach などの最近のUnixで採用
−
−
単一レベル記憶(one-level storage) ... Multics
メモリオブジェクト、外部メモリマネージャ ... Mach
仮想記憶上でのプログラムの共用
プロセスでデータやコードを共用できると便利
各プロセスで共用するデータやコードをコピー
して持つ
−
−
−
コピー作成、ロードのオーバヘッドがかかる
コピーのための領域が大量に必要
コピーの一貫性をとる必要がある
単一のコピーを共用する
−
−
アドレス空間で共用? or ファイルを共用?
主記憶上で共用? or 補助記憶上で共用?
再入可能なプログラム
同時に複数のプロセスが実行可能なプログラムを再入可能
(リエントラント)なプログラムという
プログラムを実行中に、他のプロセスによって中断されても
再開後も矛盾なくプログラムが動作するもの
プロセス固有のデータは、固有の領域におき、共用領域には
変更されることのない部分のみを置く
−
純コード
ページングにおけるプログラムの共用
−
−
−
各プロセスのページテーブルに同じページを登録
異なる仮想アドレスでページを共用するのは困難
プログラム内のアドレス表記を相対アドレスとする