ユーザープロセスがmalloc(n)を呼び出すときにプロセスに割り当てられた物理ページはありますか?私はそうではないと信じています。なぜなら、 malloc はヒープから割り当てるからです。そうですか?
答え1
Linuxでは、あなたの質問に対する短い答えは、「物理ページは通常割り当てられていません」と思います。これは…不利だ」メモリ過剰割り当て「あなたは見つけることができますトーン~の文書上。 Unix バリアントには、malloc の間の物理的な物理ページの割り当てに関するさまざまな戦略があります。 4BSDベースのシステムは伝統的に乱用されておらず、chill
プログラムと組み合わせると(参照が見つかりません)、無限の楽しみがあります。chill
できるだけ多くのメモリを割り当てて予約してください。 SunOS(4.2BSDベース)は常に何でも物理ページを割り当てるため、malloc()
あるユーザーがすべてのRAMを割り当て、他のユーザーが無限にページングできるようにすることができます。
Linuxの場合は、システムポリシーが何であるかを確認できます。cat /proc/sys/vm/overcommit_memory
「0」、「1」、または「2」を指定する必要があります。これは、それぞれ「経験的オーバーコミット」、「常にオーバーコミット」、および「オーバーコミットしない」を意味します。