1

IPC 通信用の共有メモリとして 64MB を割り当てるプログラムを実行しています。pmap は、64MB のチャンクが割り当てられていることを示しています。ただし、「top」は、proc の RES メモリが約 40MB であることを示しています。共有メモリは VIRT としてマークされていると結論付けました。しかし、なぜ?Linuxにはまだ1GB以上のRAMが利用可能です。

4

3 に答える 3

1

その 64MB を実際に使用したことはありますか? Linux は割り当てを延期します。

参照。malloc は、Linux (およびその他のプラットフォーム) での割り当てのバッキング ページを遅延して作成しますか?

于 2013-02-08T21:47:09.783 に答える
0

共有メモリは、すべてではないにしてもほとんどのメモリ ユーザーランド プログラムが扱うのと同じように、仮想です。アクティブなページのみを物理 (常駐メモリ) にマップする必要があります。別の方法で行うと、リソースの無駄になります。

唯一の例外は、プロセスが RAM 内のページを明示的にロックする場合mlockです。

于 2014-03-02T20:41:28.900 に答える