33
記 記 記 記(2) 記記記記記記記記記記記記

記 憶 管 理(2)

  • Upload
    morag

  • View
    49

  • Download
    0

Embed Size (px)

DESCRIPTION

記 憶 管 理(2). オペレーティングシステム 第9回. 復 習. 実際のメモリよりも,大きなプログラムを実行したい 実行に伴い,その時,その時で必要な部分だけがメモリにあれば良い オーバレイ どこが必要なのかの指示をプログラマが行う 仮想記憶 必要になった部分を OS がメ モリに格納する. 仮 想 記 憶(13) 前回. プログラムの実行に伴いある番地を参照 その番地のページ番号 ページ番号をページ表で調べる 該当ページが実記憶にない ページフォールト という割込み 該当ページの実記憶への読み込みと ページ表更新. 仮 想 記 憶(14) 前回. - PowerPoint PPT Presentation

Citation preview

Page 1: 記 憶 管 理(2)

記 憶 管 理(2)

オペレーティングシステム第9回

Page 2: 記 憶 管 理(2)

復 習 実際のメモリよりも,大きなプログラムを実

行したい 実行に伴い,その時,その時で必要な部分だ

けがメモリにあれば良い オーバレイ

どこが必要なのかの指示をプログラマが行う

仮想記憶 必要になった部分を OS がメモリに格納す

Page 3: 記 憶 管 理(2)

仮 想 記 憶(13) 前回 プログラムの実行に伴いある番地を参照 その番地のページ番号 ページ番号をページ表で調べる 該当ページが実記憶にない

ページフォールトという割込み 該当ページの実記憶への読み込みと

ページ表更新

Page 4: 記 憶 管 理(2)

仮 想 記 憶(14) 前回 空いているページ枠がない

使用中のページ枠を空けて,そこに読み込む

空けるページ枠の決め方 ページ置換えアルゴリズム 次回 ← 今回

Page 5: 記 憶 管 理(2)

ペー ジ置換え(1) デマンドページング(要求時ページング)

ページが必要になったときに,補助記憶装置から実記憶に読み込む ページイン

しかし,読み込む場所(空きページ枠)がない場合は ?!

Page 6: 記 憶 管 理(2)

ページ置換え(2) 空きページ枠がない 適当なページ枠を選ぶ

しかし,ページが読み込まれている その内容を必要に応じて,補助記憶装置に書

き出す ページアウト

空けたページ枠に,読み込む ,

Page 7: 記 憶 管 理(2)

ページ置換え(3) ページアウトするページの選択

ページ置換えアルゴリズム これから使いそうにないページ 今後,使わないページ ページアウト直後に再度ページインす

ることになるようなページは選びたくない

将来の予測 困難

Page 8: 記 憶 管 理(2)

ページ置換え(4) FIFO アルゴリズム (First In First Out)

もっとも以前に実記憶に読み込まれたページを選ぶ

実記憶に長く存在するページは,今後はもう使わないであろう

Page 9: 記 憶 管 理(2)

ページ置換え(5) LRU アルゴリズム (Least Recently Used)

もっとも以前に使われたページを選ぶ

頻繁に使われるページは,今後も使われるであろう(“局所参照”という性質)

使われなくなって時間が経過したページは,今後は使われないであろう

Page 10: 記 憶 管 理(2)

ページ置換え(6) 他にもいろいろある

実際は,もっと複雑

Page 11: 記 憶 管 理(2)

ページ置換えの例(1) 4 ページ分( 0 ~ 3 )の大きさのプログラム

実記憶のページ枠は 3

次の順で各ページが必要になるものとする 0 → 1 → 2 → 0 → 3 → 0 → 2 → 1 → 2

Page 12: 記 憶 管 理(2)

ページ置換えの例(2) FIFO

ページ 0 がページアウト

直前にページアウトしたページをページイン

下のものほど,長く実記憶にある

ページ枠ではない

ページアウト(ページ交換)

Page 13: 記 憶 管 理(2)

ページ置換えの例(3) LRU

下のものほど,参照されてから

時間が経過している

実記憶にあるページ

参照されてから,最も時間が経過しているページが

ページアウト

ページアウト(ページ交換)

Page 14: 記 憶 管 理(2)

LRU と FIFO (1) LRU の方が,ページ置換えの回数が少ない

ような例を示しているだけ,かも知れない

FIFO だと,ページ枠の数を増やしても,ページ交換の回数が増える場合がある LRU だと,そのようなことはない

Page 15: 記 憶 管 理(2)

LRU と FIFO (2) LRU の背景 メモリ参照の局所性

プログラムは,いつもプログラム全体を参照するわけではない

一部だけを参照する その一部が実行に伴い移動する

プログラム全体(命令とデータ)この部分だけを参照する

この部分だけを参照する

この部分だけを参照する

この部分だけを参照する

この部分だけを参照する

このようにプログラムを作ると効率的に実行されることになる

Page 16: 記 憶 管 理(2)

ス ラ ッ シ ン グ(1) 多重プログラミング環境

多重度(並行実行するプロセスの数)を上げる

各プロセスへのページ枠が減る

Page 17: 記 憶 管 理(2)

ス ラ ッ シ ン グ(2) ページ交換の回数が増える

さらに多重度を上げる

CPU は,もっぱらページ交換のために使われる プロセスの実行が進まない

Page 18: 記 憶 管 理(2)

ス ワ ッ ピ ン グ(補足) プログラム A が実行中 プログラム B を実行しようとする 主記憶を空けるために, A が格納されてい

る主記憶の内容を必要に応じて,補助記憶装置に書き出す スワップアウト

空いたところに, B を読み込む スワップイン

Page 19: 記 憶 管 理(2)

問 題 ページアウト,スワップアウト

必要に応じて,補助記憶装置に書き出す

つまり,“書き出さない”場合がある 単にページインだけを実行する

書き出す必要の有無は?

Page 20: 記 憶 管 理(2)

ヒ ン ト 命令しかないページは?

データのあるページは?

実記憶(主記憶)にある間に,書き換えられたかどうか! この情報も,ページ表などで管理する

Page 21: 記 憶 管 理(2)

記憶管理の他の重要な機能 多重プログラミング環境

別のプログラムが,自分のデータを読み書き

別のプログラムのデータを読み書き 禁止する(保護) ただし,禁止だけではない(情報共有)

Page 22: 記 憶 管 理(2)

記憶装置の階層化

Page 23: 記 憶 管 理(2)

記憶装置の階層化(1) 第 2 回

仮想記憶は  メモリ   HDDの 2 階層

容量 読み書きの時間

メモリ

小 短い

HDD 大 長い

Page 24: 記 憶 管 理(2)

記憶装置の階層化(2) キャッシュメモリ

CPU のデータ転送速度と主記憶装置の読み書き速度に差をうめる

CPU と主記憶装置の間におかれる高速記憶装置

Page 25: 記 憶 管 理(2)

記憶装置の階層化(3) 読み書きの速度 容量 値段

早いもので大容量が理想であるが…

全体としてのバランス

Page 26: 記 憶 管 理(2)

ま と め

Page 27: 記 憶 管 理(2)

ま と め(1) 必要になったページが実記憶にない

という割込みページフォールト

実記憶に読み込む

ページイン

Page 28: 記 憶 管 理(2)

ま と め(2) 空きページ枠がないとき,どのページ枠を空

けるか これから使いそうにないページが格納されて

いるページ枠を選ぶ 必要に応じて,そのページ枠の内容を補助記

憶装置に書き出す ページアウト

Page 29: 記 憶 管 理(2)

ま と め(3) ページアウトするページの選択

将来の予測 FIFO LRU 他にもある

最前未使用 (NRU) アルゴリズム,セカンド・チャンスアルゴリズム,ワーキングセット法,…

Page 30: 記 憶 管 理(2)

ま と め(4) ページアウトする必要のない場合

単に新しいページでページ枠を上書きする

ページ枠の内容が変更されていない 補助記憶装置の内容と同じ プログラム データであっても変更されていない

Page 31: 記 憶 管 理(2)

ま と め(5) プロセスへのページ枠の割当てが少ない

ページ置換えが頻発

プロセスの実行時間が少なくなる

スラッシング

Page 32: 記 憶 管 理(2)

ま と め(6) 記憶装置の階層化

キャッシュメモリ メモリ HDD

読み書きの速度,容量,価格

キャッシュは後でも出てくる

Page 33: 記 憶 管 理(2)