オペレーティング システムは物理メモリ上で実行され、各プロセスに個別の仮想アドレス空間を提供し、そこにデータを保存しています。仮想メモリと物理メモリ間の転送を容易にするためです。
オペレーティング システムは、その目的に必要のないメモリの部分をページに分割します。そのため、プロセスがやり取りする仮想アドレス空間は、これらのページの倍数になります。
なぜこれが真実ではないのでしょうか?実際のメモリ消費量(私の に表示される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
ページ サイズが 4KiB であるため、すべてのエントリが 4 で割り切れることになります。