Was bedeutet die DATA-Spalte von TOP?

Was bedeutet die DATA-Spalte von TOP?

Ich versuche, die Bedeutung all der verschiedenen Speicherklassifikationen wie VIRT, RES, SHR und DATA herauszufinden. Während ich die ersten drei im Allgemeinen verstehe, habe ich keine Ahnung, was die DATA-Spalte bedeutet, außer ihrer offiziellen Definition als DATA = Daten + Stapelgröße (kb). In welcher Beziehung steht dies zu den anderen drei Speicherklassifikationen?

Antwort1

Entsprechendhttps://techtalk.intersec.com/2013/07/memory-part-2-understanding-process-memory/:

Dieses Feld wird vom Kernel als Differenz zwischen zwei Variablen berechnet: total_vm, was dasselbe ist wie VIRT, und shared_vm. shared_vm ist SHR insofern ähnlich, als es die Definition des gemeinsam nutzbaren Speichers teilt, aber anstatt nur den residenten Teil zu berücksichtigen, enthält es die Summe des gesamten adressierten dateigestützten Speichers. Darüber hinaus erfolgt die Zählung auf Mapping-Ebene, nicht auf Seitenebene, sodass shared_vm nicht dieselbe Feinheit wie SHR für den modifizierten privaten dateigestützten Speicher aufweist. Folglich ist shared_vm die Summe der Quadranten 2, 3 und 4. Dies bedeutet, dass die Differenz zwischen total_vm und shared_vm genau dem Inhalt von Quadrant 1 entspricht.

Die Spalte DATA enthält die Menge des reservierten privaten anonymen Speichers. Per Definition ist der private anonyme Speicher der Speicher, der spezifisch für das Programm ist und dessen Daten enthält. Er kann nur durch Forking im Copy-on-Write-Verfahren gemeinsam genutzt werden. Er umfasst (ist aber nicht beschränkt auf) die Stapel und den Heap2. Diese Spalte enthält keine Informationen darüber, wie viel Speicher tatsächlich vom Programm verwendet wird, sie sagt uns nur, dass das Programm eine gewisse Menge Speicher reserviert hat, dieser Speicher jedoch möglicherweise lange Zeit unberührt bleibt.

Antwort2

Aus den Manpages:

 s: DATA  --  Data+Stack size (kb)
 The amount of physical memory devoted to other than executable code, also known  as
 the ’data resident set’ size or DRS.

Mit anderen Worten: Speicher, der zum Speichern variabler Daten für Ihre Programme (nicht ausführbare Programme) verwendet wird.

Sagen wir, ein Array im Speicher besteht aus variablen Daten.

Außerdem stack sizeist es, wie der Name schon sagt, die Größe Ihres Stapels, den das System zur Ausführung des jeweiligen Programms verwendet. Der Stapel ist der Ort, an dem das System den Traceback der Funktionen speichert, die Ihr Programm/Prozess aufruft. Beachten Sie, dass diese Metrik die Stapelgröße und nicht den Stapel selbst angibt.

Mehr zu den anderen von Ihnen genannten SpeicherspaltenHier

Antwort3

Aus der ManpageHier.

The amount of private memory **reserved** by a process.  It is also
known as the Data Resident Set or DRS.  Such memory may not yet
be mapped to physical memory (RES) but will always be included in
the virtual memory (VIRT) amount.

verwandte Informationen