仮想メモリについて教えてください

このQ&Aのポイント
  • WindowsXPではプログラムを実行する際に、物理メモリまたは仮想メモリに割り当てるのでしょうか?
  • 具体的には、物理メモリと仮想メモリの割り当て具合について疑問があります。
  • 例えば、物理メモリが256MBで空き物理メモリが100MB、仮想メモリが256MBで空き仮想メモリが256MBの場合、50MBのプログラムを実行するとすべて物理メモリに割り当てられるのでしょうか?また、60MBのプログラムを実行すると10MB分が仮想メモリに割り当てられるのでしょうか?さらに、50MBのプログラムを実行してそのプログラム上で300MBのデータを読み込もうとした場合、仮想メモリが不足してエラーが発生するのでしょうか?
回答を見る
  • ベストアンサー

仮想メモリについて 教えてください

仮想メモリ関連の既出の質問を探してみたのですが 自分が疑問に思っていることへの回答が見当たらなかったので 質問させていただきます WindowsXPではプログラムを実行する際に プログラム全体及び 関連データをすべて物理メモリまたは仮想メモリに割り当てる のでしょうか? どういうことかと言いますと 例として 物理メモリ256MB 仮想メモリ256MB として 現動作中の空き物理メモリ100MB 空き仮想メモリ256MBの状況で 1 50MBのプログラムを実行した時はすべて物理メモリに割り   当てられるのか? 2 加えて60MBのプログラムを実行した時には10MB分が仮想メモリ   に割り当てられるのか? 3 加えて50MB分のプログラムを実行して そのプログラム上で   300MBのデータを読み込もうとした時には 仮想メモリが少ない   等のエラーが発生するのか? 条件がアバウトかとは思いますが よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • nobu1977
  • ベストアンサー率25% (15/59)
回答No.3

>プログラムを一度起動して その後終了した後 また起動した場合 >プログラムの起動速度が速くなるのは プログラムを終了した後も >物理メモリ上にプログラムの断片が残っていて OSがそれを把握 >しているからなのでしょうか? イメージは、そんな感じです。 ※断片という表現が正しいかは別として・・・ 物理メモリと仮想メモリ上に残っています。

kurosukenken
質問者

お礼

ご回答 ありがとうございます

その他の回答 (2)

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.2

仮想記憶の世界では、あるプログラムのメモリサイズが○○MBであるということと、メモリを○○MB使用するということは別です。 50MBのプログラムを実行した場合物理メモリが割り当てられるのはごく一部、実際に実行された部分に対応するところだけです。 あと、300MBのデータを読み込むのにどれだけメモリを食うかはプログラムの作り方で変わるのでなんともいえません。

kurosukenken
質問者

お礼

ご回答 ありがとうございます

  • nobu1977
  • ベストアンサー率25% (15/59)
回答No.1

1.仮想メモリにも割り当てられ、物理メモリに空きがあります。 2.同様に、物理メモリは100%使われません。 3.300MBのデータを開くことで、   必ずしもメモリを300MB使うわけではありません。   ただ300MBメモリを使うデータを開いた場合、エラーとなります。

kurosukenken
質問者

お礼

さっそくのご回答ありがとうございます 全体メモリ=物理メモリ+仮想メモリ とすると 全体メモリの空きが10Mしかないのに20MBのプログラムは 起動不可と考えてよろしいのですね (確かにメモリがないのにプログラムが起動するというのは 変な話で。。。) 質問の趣旨とは若干ずれてしまうのですが プログラムを一度起動して その後終了した後 また起動した場合 プログラムの起動速度が速くなるのは プログラムを終了した後も 物理メモリ上にプログラムの断片が残っていて OSがそれを把握 しているからなのでしょうか? 追加の質問になってしまって申し訳ありませんが ご回答 よろしくお願いします

関連するQ&A

  • プログラム単位での仮想メモリの割当て

    特定のプログラムの使用するメモリを仮想メモリに割り当てて、物理メモリには余裕を持たせておくようなフリーソフトはないでしょうか? 例えば物理メモリ1GB、仮想メモリ1500MBあったとして 通常なら物理メモリの1GBを超えた場合に、仮想メモリを使いだしますよね。 そうではなく、 仮に通常のメモリ使用量が400MB+ソフトAのメモリ使用量が700MBだったとした場合 物理メモリ:通常時の400MB 仮想メモリ:ソフトAの700MB もしくは物理メモリに200MBほど足してその中で残りのソフトAの仮想メモリ消費500MBを交換してやりくりするなど。 多くのメモリを消費するソフトAを非アクティブにして、他の作業をする際に物理メモリの上限値を超えていて、動作が重いのでなんとかならないかと思って質問させて頂きました。 ソフトAの動作は遅くなっても構いません。 良いソフトや方法がありましたらよろしくお願いします。

  • 仮想メモリ

    物理メモリは256MBです、仮想メモリをDドライブに移そうと思っています、仮想メモリををどの位にすればいいでしょうか?

  • 仮想メモリと物理メモリの使い分け

    仮想メモリと物理メモリどちらにデータを置くかの判断はOSの役目ですが、 それらは優先度、タスクバーで実行中などの状態で判断されるんですか? バックグランドのアプリを仮想メモリ、 実行中のブラウザなどを物理メモリでやってくれるのが理想なんですが。 そこまでOSは賢いものなんですか? たまにブラウザのタブを切り替える時 HDDのアクセス音がして待たされることがあります。 これは仮想メモリ上にあるということだと思うんですよ。 仮想メモリをなしという設定もできますが、 XPでは1GB積んでいればそれにしても大丈夫ですか?

  • 仮想メモリは要らないのですけど・・・

    WindowsXPを使っている者ですが、システムのプロパティでページングファイルを無効にしても、タスクマネージャのプロセスの所を見ると、全てのプロセスで仮想メモリが使われています。 タスクマネージャによると、コミットチャージの制限値+カーネルメモリの合計が物理メモリの合計にほぼ等しいので、それらの数値によると仮想メモリは使われていないみたいなのですが・・・。 仮想メモリを殆ど使わせないようにはできないのでしょうか。

  • WindowsXPの仮想メモリとは?

    WindowsXPに仮想メモリというがありますよね? 私の平常時のパソコンの状況を示すと メモリの使用状況が40% 仮想メモリ194MB CPU使用率2% となっています。ちなみにスペックは OS XP メモリ 256MB HDD 60G という構成内容です。 質問1 ・仮想メモリとはどういう概念なんでしょうか?簡単に説明してくださると幸いです。 質問2 ・質問1がわかれば必然的にわかると思うのですが、メモリと仮想メモリとは違うのでしょうか? どうぞよろしくお願いします。

  • 仮想メモリ

    物理メモリが960MB(VRAM64MB)あるので仮想メモリの[ページングファイルなし]にしても大丈夫でしょうか?  ある程度は残しといた方がいいですかね・・。?

  • 仮想メモリはいる??

    現在Windows Vista(Home)を使っており、メモリ消費が激しいということなので2GBにしたのですが、効果を発揮していないようです?? というのも物理メモリ2GBなのですが、使用率は50%前後で、今後もそれほど起動ソフトを増やすつもりはないのです。 そこで気になったのですが、物理メモリでまだ半分しか使ってないので、仮想メモリをまったく使わなくてもいいかと思うのですが、どうでしょう?(なるたけハードディスクを痛めたくないので) マイコンピュータからメモリの設定をしようとしたら 「200MB以上にしないと不安定...」とか言われました。 でも物理メモリで補っているので大丈夫ですか?? あと仮想メモリを全く使わないようにするにはメモリの最低と最高0MBにしたらいいのでしょうか? 教えてください。

  • 仮想メモリは小さいほうが良い??

    仮想メモリを大きくすると起こる現象 ↓ 仮想メモリ領域を必要とするソフトがあり、 そのソフトの実行時にハードディスク上でファイルの断片化が発生してしまう。 しばらくその状態で使用していると、 ハードディスクに断片化されたファイルが多く存在してしまうことになり、 結果パフォーマンスが低下する。 また、仮想記憶領域自体がハードディスクを圧迫し、データのやり取りの際に処理速度が低下する。 と認識していますが正しいのでしょうか? もしこの推測が正しいのであれば、 パソコン上での日常の作業は物理メモリ(768メガバイト)で十分まかなえているので、 出来るだけ仮想メモリを小さい値に設定しようと思っています。 (ちなみに上記の現象も自身の予測です。)

  • 仮想メモリについて

    仮想メモリが足りなくなると自動的に補充されるのでしょうか? また、仮想メモリでは直接プログラムを実行できないようですが、仮想メモリからメインメモリへは すぐに移動するものですか? また、メインメモリを優先的に使い、足りなくなった場合だけ仮想メモリを使うという設定はできるのですか? 分かる範囲でいいのでよろしくお願いします。

  • メモリ増設後の、仮想メモリの数値。

    メモリ増設後の、仮想メモリの数値。 先日PCのメモリを512MB→2Gに増設しましたが、仮想メモリの設定変更を忘れていました。 現在の割り当てが768MBで、推奨値が3070MBになっていました。 少し調べてみて自分で数値を変更してみましたが、大き過ぎたようで「4096MB以下にしてください。」と出ました。 なので今は『初期サイズ』『最大サイズ』両方を同じ値にすれば最高?の効率化を図れるとのことで、どちらも4096MBに変更しました。 ・『初期サイズ』と『最大サイズ』というのは、どういうものなんでしょうか? ・今更でスミマセンが、仮想メモリとはそもそも何ですか? ・HDDを圧迫・・・というのは、仮想メモリが大きいと物理的なメモリ容量がその分割かれるという解釈で良いんでしょうか? いろいろ質問してすみませんが、この場合はベストの数値は何でしょうか??