操作系统在物理内存上运行,并为每个进程提供单独的虚拟地址空间,用于存储数据。使虚拟内存和物理内存之间的传输更加容易。
操作系统将不需要的内存部分划分为页面。因此,进程与之交互的虚拟地址空间是这些页面的倍数。
为什么这不是真的?为什么实际的内存消耗(如我的所示)不是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。