3

チューニングとパフォーマンスの目的で、Linuxのメモリ管理をもう少し明確にしようとしています。

IBMのWebサイトにあるこの非常に興味深いレッドブック「Linuxパフォーマンスとチューニングのガイドライン」を読んだことで、私は完全には理解していないことに気づきました。

IA-32などの32ビットアーキテクチャでは、Linuxカーネルは最初のギガバイトの物理メモリ(予約範囲を考慮すると896 MB)のみを直接アドレス指定できます。いわゆるメモリより上のメモリはZONE_NORMAL、下位1GBにマップする必要があります。このマッピングはアプリケーションに対して完全に透過的ですが、メモリページを割り当てるとZONE_HIGHMEMパフォーマンスがわずかに低下します。

  1. 896 MBを超えるメモリを下位1GBにマッピングする必要があるのはなぜですか?
  2. にメモリページを割り当てることでパフォーマンスに影響があるのはなぜZONE_HIGHMEMですか?
  3. その時は何にZONE_HIGHMEM使われますか?
  4. 最大4GB()を認識できるカーネルがCONFIG_HIGHMEM=y最初のギガバイトを使用できるのはなぜですか?

前もって感謝します

4

1 に答える 1