Slide 1

Slide 1 text

プロセスへのメモリ割り当て(4) 実際に使うときにメモリを獲得する デマンドページング(実践編) Jul. 19th, 2024 Satoru Takeuchi X: satoru_takeuchi 1

Slide 2

Slide 2 text

はなすこと ● これまでに学んだこと ○ Linuxはデマンドページング方式でプロセスにメモリを割り当てる ● 実際にそうなることを実験で確認 ● 実験環境 ○ Ubuntu 22.04.4 LTS ○ kernel 5.15.0-107-generic 2

Slide 3

Slide 3 text

実験プログラム ● demand-paging.py ○ mmapを呼び出して100MiBのメモリを獲得 ○ 1秒に1回、先頭から順番に 10MiBづつ、合計100MiBの領域にアクセス 3 仮想アドレス空間 1. 100MiBの領域をmmap 2. 先頭10MiBにアクセス 3. 次の10MiBにアクセス …

Slide 4

Slide 4 text

実験中に別端末でメモリ関連の統計情報を見る ● sar -r 1 ○ 1秒間に1回メモリ関連統計情報を出力 ● 見るべきフィールド ○ kbmemused: 使用中のメモリ量[KiB] 4

Slide 5

Slide 5 text

実験中… ● 上の端末 ○ ./demand-paging.py ● 下の端末 ○ sar -r 1 5

Slide 6

Slide 6 text

まとめ ● Linuxがデマンドページング方式でメモリ獲得していることがわかった ○ mmap発行時にはメモリ使用量は増えない ○ メモリ使用量が増えるのは実際にメモリアクセスしたとき 6