進程如何消耗比可用頁面大小更多/更少的虛擬記憶體(根據頂部)?

進程如何消耗比可用頁面大小更多/更少的虛擬記憶體(根據頂部)?

作業系統在實體記憶體上運行,並為每個進程提供單獨的虛擬位址空間,用於儲存資料。使虛擬記憶體和實體記憶體之間的傳輸更加容易。
作業系統將不需要的記憶體部分劃分為頁面。因此,進程與之互動的虛擬位址空間就是這些頁面的倍數。

為什麼這不是真的?為什麼實際的記憶體消耗(如我的所示)不是top倍數,

PID    VIRT     TIME+  COMMAND
  986  212076  11:22.29 Xorg
 1194  504916   1:56.15 pulseaudio
 1252  445884   0:13.69 xfce4-terminal
  827    4256   0:08.16 acpid

我的作業系統使用的頁面大小?

acpid使用 4256 位元組的虛擬記憶體。getconf PAGESIZE顯示我的系統使用 4096 位元組 (4KiB) 的頁面大小

答案1

它的行為實際上就像你所描述的那樣。

Top 的記憶體輸出位於其中,KiB這就是為什麼每個條目都可以被 4 整除的原因,因為您的頁面大小是 4KiB。

相關內容