IPC 通信用の共有メモリとして 64MB を割り当てるプログラムを実行しています。pmap は、64MB のチャンクが割り当てられていることを示しています。ただし、「top」は、proc の RES メモリが約 40MB であることを示しています。共有メモリは VIRT としてマークされていると結論付けました。しかし、なぜ?Linuxにはまだ1GB以上のRAMが利用可能です。
質問する
326 次
3 に答える
1
その 64MB を実際に使用したことはありますか? Linux は割り当てを延期します。
参照。malloc は、Linux (およびその他のプラットフォーム) での割り当てのバッキング ページを遅延して作成しますか?
于 2013-02-08T21:47:09.783 に答える
0
共有メモリは、すべてではないにしてもほとんどのメモリ ユーザーランド プログラムが扱うのと同じように、仮想です。アクティブなページのみを物理 (常駐メモリ) にマップする必要があります。別の方法で行うと、リソースの無駄になります。
唯一の例外は、プロセスが RAM 内のページを明示的にロックする場合mlock
です。
于 2014-03-02T20:41:28.900 に答える