カーネル内でメモリを動的に確保するために使う kmalloc と vmalloc.
あれ,これの違いはなんだろう?と思い調べる.
●kmalloc:確保するメモリをスラブから取得している
-割り当てられたアドレス空間には物理ページがマッピング済みなのでページフォルトは起きない
-アドレス空間にマッピングされているページは連続
●vmalloc:vmalloc用の領域からアドレス空間を割り当て(kmallocの拡張版)
-割り当てられたアドレス空間には物理ページがマッピングされていない場合がある
-アドレス空間にマッピングされるページは非連続
という違いがあるよう.
kmalloc により確保した領域(というかスラブが確保した領域)は /proc/slabinfo で見られるようです.
vmallocの仕組みが未だにしっくりこない…(@_@)
ということで参考ページは以下.メモメモ.
スラブアロケータ - Linuxカーネルメモ
kmalloc,vmalloc - Linuxカーネルメモ
Omicron Linux/vmalloc
0 件のコメント:
コメントを投稿