第6回 仮想記憶とページング
Download
Report
Transcript 第6回 仮想記憶とページング
第6回 仮想記憶とページング
ページング
ページ取り出し方式
ページ置き換え方式
中間テスト(40分)
ページング
仮想アドレス空間、物理アドレス空間ともにページとよば
れる固定区画に分割される
仮想ページ番号 … 仮想アドレス空間内のページに付け
られる番号
物理ページ番号 … 物理アドレス空間内のページにつけ
られる番号
ページ枠 … 物理ページ
仮想アドレス(L) = ページ番号(P)+ページ内変位(O)
−
−
P = L / N
O = L mod N
※ Nはページサイズ
ページング(図解)
物理ページ番号
(ページ枠番号) 0
存在ビット
物理ページ番号
仮想ページ番号
0
1
2
3
A
0
1
1
0
2
4
1
B
2
C
2
1
3
D
3
0
7
4
E
4
0
8
5
1
11
9
6
1
5
10
5
F
6
G
仮想記憶
A
5
7
ページテーブル
G
6
11
C
A
B
C
D
E
F
G
F
12
補助記憶
13
14
主記憶
ページングにおけるアドレス変換
物理アドレス = 物理ページ番号+ページ内変位
ページテーブル
ベースレジスタ
仮想アドレス
b
仮想ページ番号 ページ内変位
p
+
d
b
p
物理アドレス
存在ビット
修正ビット
アクセス保護情報
p'
ページテーブル
参照ビット
p’
d’
ページに対するアクセスと、ページフォルト
セグメンテーションと同様の手順で、仮想アドレスから物理ア
ドレスを変換
ページフォルト... 仮想アドレスから物理アドレスへの変換時
に、主記憶上にページが不在
ページフォルト割込み... ページフォルトが発生すると割り込
みによって主記憶上に空きページ枠を探し、そこに補助記憶
のページを読み込む
ページの置き換え... ページフォルト割込み時に、空きペー
ジ枠が存在しないときに、主記憶上のぺーじ1つを掃き出し
てページ枠を確保する
ページ枠テーブル... ページ枠の番号(物理ページ番号)を
インデックスとして、あいているかどうかを示す存在ビットを
記載したテーブル
ページフォルトの手順
ページフォルト発生
ページを補助記憶から
取り出す
ページフォルト割込みで
割り込みハンドラへ
空きページ枠に読み込む
空きページの検索
あり
空きページは?
ページテーブルの存在
ビットを 0 から1に書き換える
なし
ページ置き換えに
よりページを掃き出す
空きページを確保
ページ枠テーブルの
空きビットをクリアする
割込み処理から復帰
処理の再開
ページの取り出し方式
デマンドページング
−
−
−
ページが参照され、ページフォルトが発生したときに主記憶にページ
を読み込む
ページ転送に無駄がない
ページアクセスのオーバヘッドが大きい
プリページング
−
−
−
−
−
−
ページが参照される前に、予めページを主記憶に読み込んでおく
ページアクセスによるオーバヘッドが小さい
使用されるページ予想が難しい
無駄なページ転送が生じる
実際には、デマンドページングと併用して用いられ、ページフォルトが
発生した場合に、仮想アドレス空間の連続したページを一緒に読み
込む
プログラム実行開始時にまとめて数ページ読み込んでおく
ページの置き換え方式
ページ置き換えアルゴリズム...ページフォルト率を下げること
が目標
LRU(Least Recently Used)
−
−
ページ参照の時間的局所性(locality)
LRU近似アルゴリズム
ワーキングセット法
−
−
クロックアルゴリズム ... FINUFO(first in not used first out)
大域LRU ⇔ 局所LRU
ワーキングセット... 過去一定時間T内に参照されたページ集合
ウィンドウサイズ(T)
PFF法(page fault frequency strategy)
スラッシング... どのプログラムに対しても十分なページ枠が
与えられないほどページ枠が不足することによって、頻繁に
ページ置き換えが起きる現象
ページングに使われる技巧
多段ページング
−
−
仮想アドレス全体空間全体がフルに使用されることはな
いため必要な部分だけページテーブルを持たせる
ページテーブルの共用が可能となり、記憶領域が節約で
き、ページ置換時にエントリの変更がスムーズになる
アドレス変換の高速化
−
−
TLB(translation look-aside buffer) or ATB(address
translation buffer)
最近アドレス変換したページのページテーブルを高速な
バッファに格納しておく