プロセスはどのようにして、ページ サイズによって使用可能になる仮想メモリよりも多く/少なく仮想メモリを消費するのでしょうか (top によると)?

プロセスはどのようにして、ページ サイズによって使用可能になる仮想メモリよりも多く/少なく仮想メモリを消費するのでしょうか (top によると)?

オペレーティング システムは物理メモリ上で実行され、各プロセスに個別の仮想アドレス空間を提供し、そこにデータを保存しています。仮想メモリと物理メモリ間の転送を容易にするためです。
オペレーティング システムは、その目的に必要のないメモリの部分をページに分割します。そのため、プロセスがやり取りする仮想アドレス空間は、これらのページの倍数になります。

なぜこれが真実ではないのでしょうか?実際のメモリ消費量(私の に表示される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

私のオペレーティング システムが使用するページ サイズはどのくらいですか?

acpid4256 バイトの仮想メモリを使用します。getconf PAGESIZEシステムが 4096 バイト (4KiB) のページ サイズを使用していることを示しています。

答え1

実際には、まさにあなたが説明した通りに動作します。

Top のメモリ出力は であり、KiBページ サイズが 4KiB であるため、すべてのエントリが 4 で割り切れることになります。

関連情報