Transcript os-09

記 憶 管 理(2) オペレーティングシステム 第9回

復 習     実際のメモリよりも,大きなプログラムを実行した い 実行に伴い,その時,その時で必要な部分だけ がメモリにあれば良い オーバレイ  どこが必要なのかの指示をプログラマが行う 仮想記憶  必要になった部分をOSがメモリに格納する

仮 想 記 憶(13) 前回     プログラムの実行に伴いある番地を参照 その番地のページ番号 ページ番号をページ表で調べる 該当ページが実記憶にない  ページフォールト という割込み  該当ページの実記憶への読み込みと ページ表更新

仮 想 記 憶(14) 前回  空いているページ枠がない  使用中のページ枠を空けて,そこに読み込む  空けるページ枠の決め方   ページ置換えアルゴリズム 次回 ← 今回

ペー ジ置換え(1)  デマンドページング(要求時ページング)  ページが必要になったときに,補助記憶装置か ら実記憶に読み込む  ページイン  しかし,読み込む場所(空きページ枠)がない場 合は?!

ページ置換え(2)     空きページ枠がない 適当なページ枠を選ぶ  しかし,ページが読み込まれている その内容を必要に応じて,補助記憶装置に書き 出す  ページアウト 空けたページ枠に,読み込む,

ページ置換え(3)  ページアウトするページの選択  ページ置換えアルゴリズム  これから使いそうにないページ  今後,使わないページ  ページアウト直後に再度ページインすること になるようなページは選びたくない  将来の予測  困難

ページ置換え(4)  FIFO アルゴリズム(First In First Out)  もっとも以前に実記憶に読み込まれたページを 選ぶ  実記憶に長く存在するページは,今後はもう使わ ないであろう

ページ置換え(5)  LRU アルゴリズム(Least Recently Used)  もっとも以前に使われたページを選ぶ  頻繁に使われるページは,今後も使われるであ ろう(“局所参照”という性質)  使われなくなって時間が経過したページは,今後 は使われないであろう

ページ置換え(6)  他にもいろいろある  実際は,もっと複雑

ページ置換えの例(1)  4ページ分(0~3)の大きさのプログラム  実記憶のページ枠は3  次の順で各ページが必要になるものとする 0 → 1 → 2 → 0 → 3 → 0 → 2 → 1 → 2

ページ置換えの例(2)  FIFO 直前にページアウトした ページをページイン 下のものほど, 長く実記憶にある ページ枠ではない ページアウト(ページ交換) ページ0が ページアウト

ページ置換えの例(3)  LRU 実記憶にあるページ 下のものほど, 参照されてから 時間が経過している 参照されてから,最も時間が 経過しているページが ページアウト

LRU と FIFO(1)  LRUの方が,ページ置換えの回数が少ない  ような例を示しているだけ,かも知れない  FIFOだと,ページ枠の数を増やしても,ページ交 換の回数が増える場合がある  LRUだと,そのようなことはない

LRU と FIFO(2)   LRUの背景 メモリ参照の局所性  プログラムは,いつもプログラム全体を参照す   その一部が実行に伴い移動する

ス ラ ッ シ ン グ(1)  多重プログラミング環境  多重度(並行実行するプロセスの数)を上げる  各プロセスへのページ枠が減る

ス ラ ッ シ ン グ(2)  ページ交換の回数が増える  さらに多重度を上げる  CPUは,もっぱらページ交換のために使われる  プロセスの実行が進まない

ス ワ ッ ピ ン グ(補足)     プログラムAが実行中 プログラムBを実行しようとする 主記憶を空けるために,Aが格納されている主記 憶の内容を必要に応じて,補助記憶装置に書き 出す  スワップアウト 空いたところに,Bを読み込む  スワップイン

問 題  ページアウト,スワップアウト  必要に応じて ,補助記憶装置に書き出す  つまり,“書き出さない”場合がある  単にページインだけを実行する  書き出す必要の有無は?

ヒ ン ト  命令しかないページは?  データのあるページは?  実記憶(主記憶)にある間に,書き換えられたか どうか!  この情報も,ページ表などで管理する

記憶管理の他の重要な機能  多重プログラミング環境  別のプログラムが,自分のデータを読み書き  別のプログラムのデータを読み書き  禁止する( 保護 )  ただし,禁止だけではない(情報共有)

記憶装置の階層化

記憶装置の階層化(1)  第2回  仮想記憶は メモリ HDD の2階層 メモリ HDD 容量 小 大 読み書きの 時間 短い 長い

記憶装置の階層化(2)  キャッシュメモリ  CPUのデータ転送速度と主記憶装置の読み書き 速度に差をうめる  CPUと主記憶装置の間におかれる高速記憶装 置

記憶装置の階層化(3)    読み書きの速度 容量 値段  早いもので大容量が理想であるが…  全体としてのバランス

ま と め

ま と め(1)  必要になったページが実記憶にない  という割込み ページフォールト  実記憶に読み込む  ページイン

ま と め(2)     空きページ枠がないとき,どのページ枠を空ける か これから使いそうにないページが格納されている ページ枠を選ぶ 必要に応じて,そのページ枠の内容を補助記憶 装置に書き出す ページアウト

ま と め(3)     ページアウトするページの選択  将来の予測 FIFO LRU 他にもある  最前未使用(NRU)アルゴリズム,セカンド・チャ ンスアルゴリズム,ワーキングセット法,…

ま と め(4)  ページアウトする必要のない場合  単に新しいページでページ枠を上書きする  ページ枠の内容が変更されていない  補助記憶装置の内容と同じ  プログラム  データであっても変更されていない

ま と め(5)  プロセスへのページ枠の割当てが少ない  ページ置換えが頻発  プロセスの実行時間が少なくなる  スラッシング

ま と め(6)   記憶装置の階層化  キャッシュメモリ  メモリ  HDD 読み書きの速度,容量,価格  キャッシュは後でも出てくる