- ベストアンサー
仮想領域はなぜ必要?
仮想領域はなぜ必要なのでしょうか?本体メモリーだけでは容量が足りない、という説明は理解できるのですが、なぜ「仮想」を必要とするのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
仮想メモリとは、OSの持つメモリ管理機能のひとつです。 アプリケーションと物理メモリ(とスワップ領域)の間に、仮想的なメモリ領域を置いてやることで、 メモリ管理を隠蔽しアプリケーションを作りやすくしたり、 物理的メモリの環境に縛られず、柔軟にメモリを使うことができるようになります。 この仮想メモリ領域は基本的にプロセスごと(≒プログラムごと)に用意され、 Windows(32bit)の場合スワップ領域(=ページングファイルのサイズ)や物理メモリ容量にかかわらず4GB(OS 2GB,プロセス2GB)です。 もし、この仮想メモリがないとしたら アプリケーションにOSや他のアプリケーションが使用しているメモリ領域にデータを置かないようにしたり、 メモリの足りないときの処理したりといったものを個別に実装する必要があります。 また、あるアプリケーションが他のアプリケーションやOSのデータをいじることが簡単になるので、 OS全体のクラッシュやデータ破壊などが起きる危険性が高くなります。 コレはマルチタスクOSとしては致命的な欠点となりえます。 #2さんの言う、「仮想領域を切る」ということは少なくともWIndowsにおいてはできません。 やっていることはおそらくページングファイルへの書き出しを無効にしているだけでしょう。 上記の説明の通り、ページングファイルがあろうとなかろうと、 物理メモリとアプリの間に仮想領域がないとWindowsのプログラムは基本的に動きません。 ※ちなみに「仮想メモリ領域=HDD上のメモリ代わりに使う領域」ではありません。 これはWindowsの場合「ページングファイル」といいます。
その他の回答 (2)
- u-bot
- ベストアンサー率58% (1736/2988)
仮想領域が無いとメモリ不足時にPCの使い勝手が悪くなるからです。 仮想領域があればメモリ不足時に使用頻度が少ないメモリ内容を一時的にHDDに保存して空きメモリを増やすことができます。 この機能のおかげで実際のメモリよりも大きなメモリを必要とするアプリを動かすことが可能になります。 また複数のアプリを起動していてメモリ不足の場合に、アプリを終了して空きメモリを増やす手間を減らすことができます。 しかし現在はメモリの大容量化、低価格化のおかげで仮想領域の必要性が薄れてきました。 実際自分は仮想領域無しでPCを使用しています。
本来仮想領域なんて使いたくはないのです。 CPUが扱えるアドレス空間が無限なら、必要ありません。 このアドレス空間に上限が有る為に、メモリなどの容量制限が掛けられる事になります。 容量制限を付けられてしまって居る為に、それ以上使いたい時は、一部を別の所へとりあえずおいて来て、使うというのが仮想空間の考え方です。 CPUのアドレス空間に関しては説明が長く成ってしまうので、御自分で調べられてください。 アドレス空間の理解が出来れば、仮想メモリを使わなければならない理由なども、自然と判る様になりますよ。