Grundlegendes zum Prozessspeicherlayout von Windows

864
Jithin Pavithran

Ich finde viele Blogs und Dokumente, die das Layout des Prozessspeichers erklären. Alle beschreiben ein Speicherlayout der folgenden Art:

Wenn ich jedoch das VMMap-Tool in Windows anschaue, finde ich Seiten mit Stapel, Haufen usw. gemischt.
Zum Beispiel:
enter image description here

Ich habe folgende Fragen:

  1. Kann jemand erklären, warum diese Bilder nicht kohärent sind? Wohin gehe ich falsch?

  2. Wenn ich VirtualAllocEx()in VMMap verwende, wird eine Region als privater Speicher markiert. Ist es ein Heap- oder Stack- oder Speicherzuordnungssegment?

1
Heap befindet sich innerhalb des von VirtualAllocEx zugewiesenen Speichers, der rein virtuell ist. Lesen Sie dies: https://msdn.microsoft.com/de-de/library/ms810627.aspx Alex vor 5 Jahren 0
nicht kohärent wie genau? Frank Thomas vor 5 Jahren 0
@FrankThomas, Im ersten Bild befindet sich der Stapel an höheren Adressen und an den unteren Adressen. Heap kommt nicht zwischen Stack-Adressen. Die VMMap zeigt jedoch sowohl Stack als auch Heap gemischt. Jithin Pavithran vor 5 Jahren 0
Zunächst einmal, Ihr oberstes Image ist ein Linux-Prozess, keine Fenster. Frank Thomas vor 5 Jahren 0
Die physische Speicherzuweisung hängt vom Betriebssystem ab. Jede physische Seite kann für jeden Zweck festgelegt werden. Ebenso kann der virtuelle Speicherplatz eines Prozesses Elemente wie speicherzugeordnete Dateifenster enthalten. Mike Robinson vor 5 Jahren 0

0 Antworten auf die Frage