9 0 x 00000 0 x 00 FFF

  • Slides: 46
Download presentation

オペレーティングシステム #9 ページング 仮想アドレス空間 0 x 00000 0 x 00 FFF 0 x 01000

オペレーティングシステム #9 ページング 仮想アドレス空間 0 x 00000 0 x 00 FFF 0 x 01000 0 x 01 FFF 0 x 02000 0 x 02 FFF 0 x 03000 0 x 03 FFF 0 x 04000 0 x 04 FFF 0 x 05000 0 x 05 FFF 0 x 06000 0 x 06 FFF 0 x 07000 0 x 07 FFF 0 x 08000 0 x 08 FFF 0 x 09000 0 x 09 FFF 物理アドレス空間 0 x 0000 00 0 x 0 FFF 0 x 1000 01 0 x 1 FFF 0 x 2000 02 0 x 2 FFF 0 x 3000 03 0 x 3 FFF 0 ページフレーム 1 2 3 04 05 ページ 06 07 08 09 ・各空間のアドレスを上位・下位ビットに 分割 ・上位ビット共通部分を単位ブロックと して扱う 13

オペレーティングシステム #9 ページング 仮想アドレス空間 0 x 00000 0 x 00 FFF 0 x 01000

オペレーティングシステム #9 ページング 仮想アドレス空間 0 x 00000 0 x 00 FFF 0 x 01000 0 x 01 FFF 0 x 02000 0 x 02 FFF 0 x 03000 0 x 03 FFF 0 x 04000 0 x 04 FFF 0 x 05000 0 x 05 FFF 0 x 06000 0 x 06 FFF 0 x 07000 0 x 07 FFF 0 x 08000 0 x 08 FFF 0 x 09000 0 x 09 FFF 00 01 02 03 物理アドレス空間 0 x 0000 0 0 x 0 FFF 0 x 1000 2 仮想アドレス 0 x 02123 は 仮想アドレス 物理アドレス 0 x 07456 0 x 0123 は に対応 物理アドレス 3 0 x 1456 に対応 1 0 x 1 FFF 0 x 2000 0 x 2 FFF 0 x 3000 0 x 3 FFF 04 05 06 下位ビットは共通 上位ビットの変換が必要 仮想 物理 02 0 08 07 1 09 : : 07 14

オペレーティングシステム #9 仮想アドレス 02 123 ページングの動作 スワップイン 物理空間 0 x 0000 = 0 x

オペレーティングシステム #9 仮想アドレス 02 123 ページングの動作 スワップイン 物理空間 0 x 0000 = 0 x 0 FFF 0 x 1000 0 x 1 FFF 0 x 2000 物理アドレス ページフォルト 0 x 2 FFF 割込 0 x 3000 0 123 0 x 3 FFF 0 x 00000 0 1 2 3 主記憶上に V 読み書き P C ページフレーム 00 1 可ない 01 1 02 0 1 011 0 0 03 1 04主記憶上 1 未変更 05 あり 1 06 1 07 1 08 1 0 x 00 FFF 0 x 01000 0 x 01 FFF 0 x 02000 0 x 02 FFF 0 x 03000 0 x 03 FFF 0 x 04000 0 x 04 FFF 0 x 05000 0 x 05 FFF 0 x 06000 0 x 06 FFF 0 x 07000 0 x 07 FFF 0 x 08000 0 x 08 FFF 0 x 09000 0 x 09 FFF 00 01 02 03 04 05 06 07 08 09 17

オペレーティングシステム #9 物理空間 仮想アドレス 07 456 0 x 0000 = 0 x 0 FFF

オペレーティングシステム #9 物理空間 仮想アドレス 07 456 0 x 0000 = 0 x 0 FFF 0 x 1000 0 x 1 FFF 0 x 2000 物理アドレス 1 ページングの動作 0 x 2 FFF 0 x 3000 456 0 x 3 FFF 00 01 02 03 04 05 06 07 08 02 0 1 2 3 V P C ページフレーム 1 1 0 011 0 0 1 1 主記憶上に 1 ない 1 01 011 0 1 1 0 x 00000 0 x 00 FFF 0 x 01000 0 x 01 FFF 0 x 02000 0 x 02 FFF 0 x 03000 0 x 03 FFF 0 x 04000 0 x 04 FFF 0 x 05000 0 x 05 FFF 0 x 06000 0 x 06 FFF 0 x 07000 0 x 07 FFF 0 x 08000 0 x 08 FFF 0 x 09000 0 x 09 FFF 00 01 02 03 04 05 06 07 08 09 18

オペレーティングシステム #9 ページングの動作 物理空間 仮想アドレス 0 x 0000 = 0 x 0 FFF 0

オペレーティングシステム #9 ページングの動作 物理空間 仮想アドレス 0 x 0000 = 0 x 0 FFF 0 x 1000 0 x 1 FFF 0 x 2000 物理アドレス 0 x 2 FFF 0 x 3000 0 x 3 FFF 00 01 02 03 04 05 06 07 08 V 01 1 0 1 P 011 C 0 02 0 07 1 05 2 3 00 ページフレーム 3 0 x 00000 0 x 00 FFF 0 x 01000 0 x 01 FFF 0 x 02000 0 x 02 FFF 0 x 03000 0 x 03 FFF 0 x 04000 0 x 04 FFF 0 x 05000 0 x 05 FFF 0 x 06000 011 0 2 011 0 1 0 x 06 FFF 0 x 07000 0 x 07 FFF 0 x 08000 0 x 08 FFF 0 x 09000 0 x 09 FFF 00 01 02 03 04 05 06 07 08 09 19

オペレーティングシステム #9 ページングの動作 スワップアウト 物理空間 仮想アドレス 03 789 0 x 0000 = 0 x

オペレーティングシステム #9 ページングの動作 スワップアウト 物理空間 仮想アドレス 03 789 0 x 0000 = 0 x 0 FFF 0 x 1000 0 x 1 FFF 0 x 2000 物理アドレス 0 0 x 2 FFF 0 x 3000 789 0 x 3 FFF 00 01 02 03 04 05 06 07 08 V 0 1 10 01 1 0 1 P 011 C 0 02 0 07 1 05 2 3 00 ページフレーム 3 0 x 00000 0 x 00 FFF 0 x 01000 0 x 01 FFF 0 x 02000 0 x 02 FFF 0 x 03000 0 x 03 FFF 0 x 04000 0 x 04 FFF 0 x 05000 0 x 05 FFF 0 x 06000 011 0 2 011 0 1 0 x 06 FFF 0 x 07000 0 x 07 FFF 0 x 08000 0 x 08 FFF 0 x 09000 0 x 09 FFF 00 01 02 03 04 05 06 07 08 09 20

オペレーティングシステム #9 ページングの動作 物理空間 仮想アドレス 01 246 0 x 0000 = 0 x 0

オペレーティングシステム #9 ページングの動作 物理空間 仮想アドレス 01 246 0 x 0000 = 0 x 0 FFF 0 x 1000 0 x 1 FFF 0 x 2000 物理アドレス 1 0 x 2 FFF 0 x 3000 246 00 01 02 03 04 05 06 07 08 V 0 01 1 0 1 10 1 03 0 07 1 05 2 0 x 00000 スワップアウト 書込み 0 x 00 FFF 0 x 01000 0 x 01 FFF 0 x 02000 0 x 02 FFF 0 x 03000 物理記憶上で行った変更が 3 00 0 x 03 FFF 0 x 04000 仮想記憶でも有効に 0 x 04 FFF P C ページフレーム 0 x 05000 011 0 3 0 x 05 FFF 011 0 1 0 x 06000 011 0 0 0 x 06 FFF 0 x 07000 011 0 0 0 x 07 FFF 変更 0 x 08000 011 0 されている 2 0 x 08 FFF 0 x 09000 011 10 1 0 x 09 FFF 00 01 02 03 04 05 二次記憶に 書戻し 06 07 08 09 21

オペレーティングシステム #9 仮想アドレス 07 357 = 物理アドレス 3 357 ハッシュ関数によるテーブル 物理空間 0 x 0000

オペレーティングシステム #9 仮想アドレス 07 357 = 物理アドレス 3 357 ハッシュ関数によるテーブル 物理空間 0 x 0000 0 x 0 FFF 0 x 1000 0 x 1 FFF 0 x 2000 0 x 2 FFF 0 x 3000 0 x 3 FFF 03 0 01 1 06 2 3 00 00 01 02 03 1 0 x 00 FFF 0 x 01000 0 x 01 FFF 0 x 02000 スワップアウト 0 x 02 FFF 0 x 03000 0 x 03 FFF 0 x 04000 0 x 04 FFF 0 x 05000 ハッシュ関数 h(x) = x % 4; flag 0 x 00000 0 x 05 FFF 0 x 06000 次エントリへの ページフレーム ページ番号 07 ポインタ 3 00 01 1 06 2 03 0 ポインタ 01 02 03 04 05 06 ページ番号が一致しない このエントリを使いたい 0 x 06 FFF 070 x 07000 ≠ 03 が,03の情報を 07 潰してしまうのはマズい ページフォルト 0 x 07 FFF 0 x 08000 0 x 08 FFF 0 x 09000 00 00 0 x 09 FFF 08 09 10 38

オペレーティングシステム #9 物理空間 仮想アドレス 11 357 0 x 0000 = 0 x 0 FFF

オペレーティングシステム #9 物理空間 仮想アドレス 11 357 0 x 0000 = 0 x 0 FFF 0 x 1000 0 x 1 FFF 0 x 2000 物理アドレス 1 ハッシュ関数によるテーブル 0 x 2 FFF 0 x 3000 357 0 x 3 FFF 03 0 01 1 06 2 3 07 スワップアウト 0 x 00 FFF 0 x 01000 0 x 01 FFF 0 x 02000 0 x 02 FFF 0 x 03000 0 x 03 FFF 0 x 04000 0 x 04 FFF 0 x 05000 ハッシュ関数 h(x) = x % 4; 00 01 02 03 0 x 00000 0 x 05 FFF 0 x 06000 flag ページ番号 ページフレーム ポインタ 3 1 2 0 01 1 07 01 11 06 03 0 x 06 FFF 0 x 07000 0 x 07 FFF 0 x 08000 0 x 08 FFF 0 x 09000 00 0 x 09 FFF 00 01 02 03 04 05 06 07 08 09 10 39