Memory管理
32bit環境で扱えるMemは最大4GBだよん、という話はおぼろげながら知っていたが、原理をよく知らなかったので色々調べてみた。
アドレスとメモリの関係?
- 1つのアドレスに1byteのデータを格納する
- 32bitで表現できる範囲は0x00000000〜0xFFFFFFFF(16進数で)
- よって、2^32 = 2 * 2 * (2^30) = 4 * (1024^3) = 4Gbyteが理論上の最大値
4GB以上積んだCentOSを見たことあるんだが...
smpやhugememカーネルはPAE(Physical Address Extension)に対応しているらしい。
PAEを使うことで、4GB以上の物理メモリを扱えるようになる
確認コマンド
uname -a
cat /proc/meminfo
ただし、個々のプロセスが扱えるのは変わらず4GBまで。
詳しい仕組みはよく分からない。。機会があったら勉強しようと思う。