- ベストアンサー
仮想メモリについて教えてください
- WindowsXPではプログラムを実行する際に、物理メモリまたは仮想メモリに割り当てるのでしょうか?
- 具体的には、物理メモリと仮想メモリの割り当て具合について疑問があります。
- 例えば、物理メモリが256MBで空き物理メモリが100MB、仮想メモリが256MBで空き仮想メモリが256MBの場合、50MBのプログラムを実行するとすべて物理メモリに割り当てられるのでしょうか?また、60MBのプログラムを実行すると10MB分が仮想メモリに割り当てられるのでしょうか?さらに、50MBのプログラムを実行してそのプログラム上で300MBのデータを読み込もうとした場合、仮想メモリが不足してエラーが発生するのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>プログラムを一度起動して その後終了した後 また起動した場合 >プログラムの起動速度が速くなるのは プログラムを終了した後も >物理メモリ上にプログラムの断片が残っていて OSがそれを把握 >しているからなのでしょうか? イメージは、そんな感じです。 ※断片という表現が正しいかは別として・・・ 物理メモリと仮想メモリ上に残っています。
その他の回答 (2)
- a-saitoh
- ベストアンサー率30% (524/1722)
仮想記憶の世界では、あるプログラムのメモリサイズが○○MBであるということと、メモリを○○MB使用するということは別です。 50MBのプログラムを実行した場合物理メモリが割り当てられるのはごく一部、実際に実行された部分に対応するところだけです。 あと、300MBのデータを読み込むのにどれだけメモリを食うかはプログラムの作り方で変わるのでなんともいえません。
お礼
ご回答 ありがとうございます
- nobu1977
- ベストアンサー率25% (15/59)
1.仮想メモリにも割り当てられ、物理メモリに空きがあります。 2.同様に、物理メモリは100%使われません。 3.300MBのデータを開くことで、 必ずしもメモリを300MB使うわけではありません。 ただ300MBメモリを使うデータを開いた場合、エラーとなります。
お礼
さっそくのご回答ありがとうございます 全体メモリ=物理メモリ+仮想メモリ とすると 全体メモリの空きが10Mしかないのに20MBのプログラムは 起動不可と考えてよろしいのですね (確かにメモリがないのにプログラムが起動するというのは 変な話で。。。) 質問の趣旨とは若干ずれてしまうのですが プログラムを一度起動して その後終了した後 また起動した場合 プログラムの起動速度が速くなるのは プログラムを終了した後も 物理メモリ上にプログラムの断片が残っていて OSがそれを把握 しているからなのでしょうか? 追加の質問になってしまって申し訳ありませんが ご回答 よろしくお願いします
お礼
ご回答 ありがとうございます