VMWare で実行されている Ubuntu 12.10 (カーネル 3.9.0-rc2) のインストールがあります。私はそれに512MBのRAMを与えました。
cat /proc/meminfo ショー:
MemTotal: 507864 KB
MemFree: 440180
(何らかの理由で) スワップを使用したいので、(malloc() を使用して) 500MB の配列を割り当て、ジャンクで埋める C プログラムを作成しました。ただし、プログラムは配列全体を埋める前に強制終了され、「強制終了」というメッセージが画面に表示されます。
これが正常な動作であるかどうか、またその理由は何ですか? 私の意見では、空き RAM が不足しているため、スワップを使用する必要があります。
編集:1GBのスワップがあるとは言いませんでした。cat /proc/swaps の表示:
/dev/sda5 Size: 1046524 Used: 14672.
メモリを消費するプログラムを実行すると、「使用済み」の量が増加します。しかし、ご覧のとおり、多くのスワップが残っています。では、なぜプログラムを「強制終了」する必要があったのでしょうか?