# HG changeset patch # User tobaru # Date 1559109322 -32400 # Node ID 4955324fa73979c743d0bdcd229ace331e1a9287 # Parent 17ad42799e3c7af63de0c88012a801d327d4ad27 Description Paging diff -r 17ad42799e3c -r 4955324fa739 slide/sig-os2019.md --- a/slide/sig-os2019.md Wed May 29 11:49:36 2019 +0900 +++ b/slide/sig-os2019.md Wed May 29 14:55:22 2019 +0900 @@ -76,11 +76,25 @@ - コンピュータ上では仮想メモリなしでは、仮想アドレスは直接メモリバスを置けない。 - バス(Bus)はメモリなどの信号を流す共通の信号回路 + ## MMU - 仮想メモリが使われる時、仮想アドレスは直接メモリバスへは行かず、MMU(メモリ管理ユニット)に行く。 --
+## MMU の動きの例 +- プログラムがアドレス0にアクセスしようとした時 + - MOV REG, 0 +- MMU はこの仮想アドレスが Page0で失敗してないか確認し Page Frame2(8192~12287)にマッピングする +- アドレス0を8192に変換し、バスに出力する。 +- メモリはMMUについて何も知らず、アドレス8192を読み書きする要求だけを見る。 +- 従って、MMU は 0から4095までの仮想アドレスを物理アドレス8192から12287に効果的にマッピングする。 +- プログラムがマップされてないアドレスを参照しようとするとOSにCPUをトラップさせる(Page Fault) + + +## Page と Page Frame +- 仮想アドレス空間では Page と呼ばれる固定サイズ単位を扱う。 +- 物理メモリ内での対応する単位は Page Frames と呼ばれる。 +- Page と Page Frames は同じサイズを生成する。 ## Segmentation with Paging: The intel x86 @@ -135,7 +149,6 @@ - ## 図