Kernel-Adressraumzuordnungen in Bezug auf den virtuellen Adressraum - eine Frage, die auf dem Text von Robert Love basiert

7

In der 3. Ausgabe von Linux Kernel Development (LKD), Kapitel 12 unter Zones, sagt Robert Love:

Insbesondere muss Linux zwei Hardware-Mängel in Bezug auf die Speicheradressierung beheben:

  1. Einige Hardwaregeräte können DMA (direkter Speicherzugriff) nur auf bestimmte Speicheradressen ausführen.

  2. Einige Architekturen können größere Speichermengen physisch adressieren, als sie virtuell adressieren können. Folglich wird ein Teil des Speichers nicht permanent in den Kernel-Adressraum abgebildet.

Meine Fragen:

  1. Erstens ist okay, was meint er mit 2?
  2. Will er damit sagen: Einige Architekturen können größere Mengen an physischem Speicher adressieren als virtuelle Adressen?
  3. Wie ist das möglich? Ich dachte, der virtuelle Adressraum ist größer als der physische Speicher oder mindestens (falls vorhanden) gleich dem physischen Speicher.
  4. Ist es nicht so, dass VAS (virtueller Adressraum) größer als der physische Speicher ist, wird ein Teil des Speichers nicht permanent dem KAS (Kernel-Adressraum) zugeordnet.

Aber ich vermute, dass nur physischer Speicher in KAS abgebildet wird. Lassen Sie mich wissen, was er mit Punkt 2 oben meint und welche falschen Annahmen ich hier mache.

Anubhav
quelle

Antworten:

4

Physical Address Extension (PAE) klingt genau so, wie er es meint.

Eine 32-Bit-CPU kann nur ~ 4 GB Speicher zuordnen, selbst wenn das System über mehr verfügt. Mit PAE können Sie jedoch> 4 GB verwenden, obwohl jeweils nur 4 GB zugeordnet sind (ein einzelner Prozess kann niemals> 4 GB verwenden).

Wenn der Kernel den aktiv ausgeführten Prozess ändert, ordnet er den virtuellen Speicher dem physischen Speicher zu, den dieser Prozess derzeit verwendet.

Patrick
quelle