6
オペレーティングシステム11 4.4ページ置き換えアルゴリズム 4.5ページ置き換えアルゴリズムのモデル化 4.4 Page Replacement Algorithms ページフォルトをするとページ選択を行う必要がある 取り除くページの選択 取込むページのスペース確保 変更されたページの保存 ディスクへ保存 変更がなければ(例えばプログラムコード)書き戻さないで良い 修正(modified,dirty)ビットによる判断 利用頻度が高いページを追い出すと おそらくすぐにページが呼び戻されることになる それはオーバーヘッドになる ページ置き換えアルゴリズムの応用 キャッシュメモリ ウェブサーバー Operating System 2016 2 前提 一度でも書き込みがあると修正(modified,dirty)ビットを1 にする リセットされない 参照されると参照ビットを1にする 定期的に、又はページフォルト時にOSへの割込みが起こり、参照 ビットは0に戻される Operating System 2016 3 4.4.1 Optimal page Replacement Algorithm (最適ページ置き換えアルゴリズム) 最も遠い将来に参照されるページを追い出す 「遠い」は実行される命令個数 最適しかし実装不可能 擬似的な方法 一度実行してプロセスのページ参照の履歴を記録 これは非実用的であるが 他のアルゴリズムと最適解との比較の際に利用出来る Operating System 2016 4

会津大学 - Operating System 2016 3web-ext.u-aizu.ac.jp/course/osrtk/lecture/pdffordisplay/...4.4.4 Second Chance Page Replacement Algorithm (セカンドチャンス置き換えアルゴリズム

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 会津大学 - Operating System 2016 3web-ext.u-aizu.ac.jp/course/osrtk/lecture/pdffordisplay/...4.4.4 Second Chance Page Replacement Algorithm (セカンドチャンス置き換えアルゴリズム

オペレーティングシステム

114.

4ページ置

き換

えアル

ゴリズム

4.5ペ

ージ置

き換

えアル

ゴリズムの

モデル

4.4

Page

Rep

lace

men

t Alg

orith

ms

ページフォル

トをするとページ選

択を行

う必

要が

ある

取り除くページの選択

取込むページのスペース確保

更され

たページの

保存

ディスクへ保存

変更がなければ(例えばプログラムコード)書き戻さないで良い

修正(modified,dirty)ビットによる判断

用頻

度が

高いページを追

い出

すと

おそらくすぐにページが

呼び戻

され

ることになる

それはオーバーヘッドになる

ページ置

き換

えアル

ゴリズムの

応用

キャッシュメモリ

ウェブサーバー

Operating System

 201

62

前提

度でも書

き込

みが

あると修

正(m

odifi

ed,d

irty

)ビットを1

にする

リセットされない

照され

ると参

照ビットを1にする

期的

に、又

はページフォル

ト時

にOSへ

の割

込み

が起

こり、参

照ビットは0に戻される

Operating System

 201

63

4.4.

1 O

ptim

al p

age

Rep

lace

men

t Alg

orith

m(最

適ページ置

き換

えアル

ゴリズム

)

も遠

い将

来に参

照され

るページを追

い出

「遠い」は実行される命令個数

最適しかし実装不可能

似的

な方

法…

一度実行してプロセスのページ参照の履歴を記録

これ

は非

実用

的であるが

…他のアルゴリズムと最適解との比較の際に利用出来る

Operating System

 201

64

Page 2: 会津大学 - Operating System 2016 3web-ext.u-aizu.ac.jp/course/osrtk/lecture/pdffordisplay/...4.4.4 Second Chance Page Replacement Algorithm (セカンドチャンス置き換えアルゴリズム

4.4.

2 N

ot R

ecen

tly U

sed

Page

R

epla

cem

ent A

lgor

ithm

(NR

U)

ページは

参照

ビット

R、修

正ビット

Mを装

ページが参照(R)ま

たは

修正(M

)され

るとセットする

Rは

クロック割

込み

ごとにリセットする→最

近の

状況

を記

R、

Mビットに応

じてクラス化

:OSが

R、Mを初

期設

クラス0:参照も修正もされない

クラス1:参照なし、修正あり

クラス2:参照あり、修正なし

クラス3:参照、修正あり

下位

のクラス(クラス0か

ら)か

らランダムにページ

を削

頻繁

に使

用され

るページより、最

近参

照され

ず、修

正され

ないページ

を追

い出

Operating System

 201

65

4.4.

3 Fi

rst-I

n Fi

rst-O

ut A

lgor

ithm

(先入

れ先

出しページ置

き換

えアル

ゴリズム

)

Operating System

 201

66

ページが

ロードされ

た順

に並

んでいるリスト(キュー)を用

意し、

ページフォル

トの

際は

キューの

先頭

(一

番古

い)か

ら追

い出

す。

=最

初に置

き換

え対

象となる

数字

は来

た時

最後尾から追加

4.4.

4 Se

cond

Cha

nce

Page

Rep

lace

men

t Alg

orith

m(セ

カンドチャンス置

き換

えアル

ゴリズム

)

Operating System

 201

67

頻繁

に使

用され

るページを追

い出

さないように

FIFO

を修

正。古

いペー

ジのビット

Rを調

べR

=1ならクリアし、その

ページをページリストの

最後

尾に連

結、メモリ内

にロードされ

た時

刻を現

在時

刻に更

新する。その

後検

索を続

行。

R=0

なら

リプレース

R=0

, M=1

(ダー

ディ

)ならディスク

書き出

しR

=1なら

R=0

にして最後尾に連結

このアルゴリズムは前回のクロックで参照されなかったページを探し追い出す。もし1周

すべてを探して全て

R=1

の場合、

AはR

=0なのでリプレースされる。

4.4.

5 Th

e C

lock

Pag

e R

epla

cem

ent A

lgor

ithm

(クロックページ置

き換

えアル

ゴリズム

)

Operating System

 201

68

セカンドチャンス置

き換

えアル

ゴリズムは

、絶

えずリスト上

でページを移

動させ

るの

で、

非効率である。

クロック置き換えでは環状リストを用い、ページフォルト発生時に最も古いページを調べ

る→

セカンドチャンスと考え方は同じだが、リストの移動がない

R=0

、M

=0なら

単に置き換え

R=0

、M

=1(ダ

ーディ

)ならディスク

書出

し、置

き換

R=1

なら

R=0

にして針を進める

Page 3: 会津大学 - Operating System 2016 3web-ext.u-aizu.ac.jp/course/osrtk/lecture/pdffordisplay/...4.4.4 Second Chance Page Replacement Algorithm (セカンドチャンス置き換えアルゴリズム

4.4.

6 Le

ast R

ecen

tly U

sed(

LRU

)ページ置

き換

えアル

ゴリズム

最近

使用

され

ないページは

今後

も使

用され

ないと予

も長

い間

使用

され

なか

ったページを追

い出

ページの

リストを管

理する必

要が

ある(次

ページ)

先頭は最近使用したページ、末尾は最後に使用

え方

としては

一番

簡単

だが

。。。

メモリ参照の度にリスト更新が必要

Operating System

 201

69

途中

から抜

き取

り出

来るキューによる

LRU

Operating System

 201

610

ページが

ロードされ

た順

に並

んでいるリスト(キュー)を用

意して、

アクセスが来た場合:

キューにない:キューの

先頭

(一

番古

い)の

ページを追

い出

す。

キューにある:キューか

ら抜

き取

り、最

後尾

(一

番新

しい)に付

ける

AB

CD

BC

DE

BD

EC

古い

新しい

A,B,C,Dの順にアクセス

Eをアクセス、A追

い出

Cをアクセス、最

後尾

追い出し

新規

LRUページ置

き換

えアル

ゴリズム

特殊なハードを用いてLRUを実現

1命令実行毎に+1されるカウンタ(時計と思うと良い)

メモリ参照時にカウンタの値をページテーブルエントリに保存

ページフォルト時に各ページエントリのカウンタ値を調べる

最も小さいカウンタ値(最も古い)のページを選択し、リプレース

Operating System

 201

611

C:5

D:6

①A,B,C,Dの順にアクセス

②Eをアクセス、

A追い出

し、

その

場所

にEを追

③Cをアクセス、時

刻更

(ページの

後の

数字

が時

刻)

A:2

B:4

E:7

C:5

D:6

E:7

B:4

C:9

D:6

E:7

B:4

①②

A:2

LRU

ページ置

き換

えアル

ゴリズム

Operating System

 201

612

nxn

ビット行

列:

1.kペ

ージ参

照でk行

をすべ

て1(青

)、k列

をすべ

て0(茶

)2.

各行

の1の

数を調

べ、最

も小

さい値

の行

が最

も過

去に参

照され

たページとなる 1 0 2 3

リプレース

例:ページ参照列

0123210323

--と来て次に4が来た時にどのページを置換えるか

01

23

10

32

前頁

とは

違うハ

ードウェアで実

Page 4: 会津大学 - Operating System 2016 3web-ext.u-aizu.ac.jp/course/osrtk/lecture/pdffordisplay/...4.4.4 Second Chance Page Replacement Algorithm (セカンドチャンス置き換えアルゴリズム

4.4.

7 LR

Uの

ソフトウェアによるシミュレーション

Operating System

 201

613

NFU

アルゴリズムを修正すると

LRUをソフトウェアでシミュレート出来る

→ エ

ージング

・参照ビットはクロックティック(例

20m

sec)

毎にリセットされ、参照で1がセットされる

・参照ビット

Rの加算の前にカウンタを右1

bitシ

フト

・ビット

Rをカウンタの最左端に加算

最近参照されないページはカウンタの上位にゼロが並び値は小さい(ページ3リプレース)

0,2,4,5ペー

ジが

参照

され

た0,1,4ページ

が参照された

0,1,3,5ペー

ジが

参照

され

た0,4ページが

参照された

1,2ページが

参照された

0001

0000

教科

書間

違い

リプレース

4.4.

8 ワーキングセットページ置

き換

えアル

ゴリズム

Operating System

 201

614

プロセスが使用中のページセットを

”ワーキングセット

”と呼ぶ。ワーキングセットのページ

を常にメモリに維持できれば、参

照の

局所

性(時

間、場

所)からページフォルトを削減出

来る。

逆にワーキングセットをメモリに持ちきれないと頻繁にページフォルトが発生する(スラッ

シング)

「ワーキングセットモデル

」はプロセスのワーキングセットを記録し、実行前のプリページ

ング(ページフォルトになる前に予めページを持って来る)、実行中のページ置き換えに

利用する方式である。

刻tに

おいて、最近k回

の参照で使用された全ページのセットw(k,t)が存在する。wのk

に対する漸近的挙動によりワーキングセットの内容はkに対して穏やかに変化するの

で、プロセスの再開時に参照するページを推定できる。

つまり、ページフォル

トが

発生

すると、その

プロセスの

ワーキングセットに属

さないペー

ジを追

い出

す!

w(k

,t)は

単調

非減

少関

ページ数は有限なので

kが増加しても

w(k

,t)は

有限

k

kの

決定

Operating System

 201

615

このアルゴリズムを適用するには

kの値を前もって決定し

なければならない

⇒近

似によるkの

決定

ワーキングセットの

定義

変更

•「最

近、ある時

間内

に参

照され

たページの

セット」

•回数

(k) ⇒

実行時間(プロセス毎の)

カレント仮想時間:

•プロセスが

開始

後に実

際に使

用したCPU時

間最

終的

なワーキングセットの

定義

。。。

•「最近のτ仮

想時間に参照されたページのセット」

ワーキングセットページ置

き換

えアル

ゴリズム

Operating System

 201

616

ワーキングセットにないページを発見し、追い出す。

ページフォルト時にページテーブルを探査し,追い出すページを決定する.

例(1)R

=0:最

近参

照され

ない

k1=

2204

-162

0>

τなら追い出し候補

k1 =

220

4-16

20 <

τ な

ら候補外

(2)R

=0:最

近参

照され

ない

k2 =

220

4-12

13 >

τ な

ら追い出し候補

k2 =

220

4-12

13 <

τ な

ら候

補外

年齢

k1<k

2から

(2)が

追い出される

前提

条件

:・R

,Mビットはハードウェアでセット

・クロック割

り込

みが

周期

的に発

生,R

=0

(1)

(2)

カレント仮

想時

間⇒

最後に使用された時間が「年齢」

となり、年

齢の

大きな物

が追

い出

し候

補となる

このクロックティック中に参照されたページは

R=1

し、

カレント仮想時間を最後に使用された時間にセット

Page 5: 会津大学 - Operating System 2016 3web-ext.u-aizu.ac.jp/course/osrtk/lecture/pdffordisplay/...4.4.4 Second Chance Page Replacement Algorithm (セカンドチャンス置き換えアルゴリズム

4.4.

9 W

SClo

ckページ置

き換

えアル

ゴリズム

(1)

Operating System

 201

617

ワーキングセット・ア

ルゴリズムの

欠点

:毎回

テーブル

全体

の走

査が

必要

環状

リストと時

計を利

用:

•最初、リストは空

•ページロードでリストに追加

•クロックティック毎に全ページのRを0に

セット

•ページフォル

ト発

生時

に矢印のページを

まず調

べる

●R=1の場合、クロックティック間に参照があっ

たの

で、この

ページは

理想

的な追

い出

し候

補には

ならない

(a)(b

)⇒

カレント仮

想時

間を書

き込

み、R=

0に

●R=

0の

場合

(c)

○22

04-1

213

>τなら候補

M=0

なら

(d)へ

M=1

ならページをディスクに書

き戻

す予定

をし

て次へ

○22

04-1

213

<τなら保留

(d)新

たなページをロード

2204

ワーキングセットページ置

き換

えアル

ゴリズム

(2)

Operating System

 201

618

一周

後の

結果

(2つの

場合

がある)と処

少なくともひとつの書き戻しが予定された

書き戻し候補を書き出しクリーンにする

き戻

しは

予定

され

ない、つまり全

ページが

ワーキン

グセットに含

まれ

る。

任意のクリーンページを要求

ページ置

き換

えアル

ゴリズムの

まとめ

4.4.

10 R

evie

w o

f Pag

e R

epla

cem

ent

Alg

orith

ms

Operating System

 201

619

P13

P17

4.5 ページ置

き換

えアル

ゴリズムの

モデル

化4.

5.1

Bela

dyの

異常

振る舞

Operating System

 201

620

FIFO

では

ページフレームの

増加

でもページフォル

トは

減少

しない場

合が

ある

ページ参

照系

列:

01

23

01

40

12

34の

3ページフレーム

4ページフレーム

Page 6: 会津大学 - Operating System 2016 3web-ext.u-aizu.ac.jp/course/osrtk/lecture/pdffordisplay/...4.4.4 Second Chance Page Replacement Algorithm (セカンドチャンス置き換えアルゴリズム

4.5.

2 スタックアル

ゴリズム

念的

には

プロセスの

メモリアクセスは

仮想

ページ番

号の

リスト

((メモリ)参照列)で特徴付け出来る。

ページングシステムは

以下

の3項

目で特

徴付

け出

来る

行中

プロセスの

メモリ参

照列

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

メモリ内

の利

用可

能なページ数

:m

配列

Mは全仮想ページ数

n個の

エントリを持

上位

m個が実ページフレームに存在するページ

位n-

m個

は1回

参照

され

たが

、ページアウトされ

、現

在メモリにないページ

手順 参

照列

を順

に見

て行

参照

したページ番

号を最

上位

に移

動(なけれ

ば最

上位

に挿

入)

あとは適宜下にシフト

これ

は正

確な

LRUアル

ゴリズムを表

す(「途

中か

ら抜

き取

り出

来る

キューによる

LRU」と同じ)

M[n

]

配列M[n]

mページフレーム数

n-m

一回

参照後

ページアウト

時系

メモリ状

態を記

録する内

部配

列M

Operating System

 201

622

LRUなどでの

特徴

的性

質:

M(m

,r)⊆

M(m

+1,r)

ページフレーム数

mの

メモリで

r回の参照後に

Mの

上位

部分

に含

まれ

るページ集

合は

、また、ページフ

レーム

m+1

のメモリの

それ

に必

ず含

まれ

る→

この

性質

を持

つアル

ゴリズムをスタックアル

ゴリズムと言

う(最

適ページ置

き換えや

LRUなど。)

Bela

dyの異常な振る舞いが起きない。

FIFOにはこのような性質がない。

4.5.

3 距

離列

Operating System

 201

623

より抽象的な参照列の表現として

参照

列を「距

離」で表

距離

とは

:参照されたページのある

場所

とスタックの

最上

位との

距離

前頁

最後

の場

合(参

照は

1)だと一

つ前

の状

態を見

て3と

なる。

Mにない場

合は

∞と

なる。

ページフレー

ム数

kでページ

フォル

トは

ほと

んど起きない

仮想空間分だけペー

ジフレームを増やさな

いとページフォル

トが

減らない

4 3 1 7 5 6 2 0

確率

密度

関数

:参

照距

離dの

エン

トリに関

して

3

4.5.

4 ページフォル

ト率

の予

Operating System

 201

624

ページフォル

ト率

の予

測参

照列

におけるページフレーム数

mの

ときに生

じるページフォル

トの

回数

を与

える

ベクトルCd:dは

参照

距離

距離

別出

現頻

CC

Fn m

kk

m

1

20

3 3 3 1 0

14 11 9 8XXXX

X X X XX

X

ベクトルFm

:mページフレーム数

ページフレーム数

mの

ページフォル

ト回

順次減少する

02468101214161820

12

34

56

7∞

Fm