dポイントプレゼントキャンペーン実施中!

32bitのメインメモリ上限を実質的に多くするには。

XP32bitでは、メインメモリの認識上限が3GBほどです。
このメインメモリとして作動する容量を実質的に上限以上にしたいです。

たとえば、
極端ですが、メインメモリを3GB食うソフトを、3つ起動したい場合です。


仮想メモリは、メモリが上限未満の時に、設定できる物だと思っているのですが。
メモリ3GB+仮想メモリ9GB=実質(カーネル)メモリ12GB にはならないと思っています。
カーネルメモリの上限を増やせれば、
仮想メモリをメインメモリ未使用領域・USBメモリ・SSDにでもすればいいのではと思ったのですが。


RAMとしてメモリの空き領域(3GB以上の未使用領域)を使用したり、
USBメモリ等のブースト系は、
SSDの代わりか、キャッシュを高速化しているだけなので、除外して下さい。

64bitですが、使用ソフトの仕様上使用できません。

A 回答 (7件)

クライアント版のXPの場合で言えば、PAE対応のハードウェア(BIOS)なら、4GBまでは32bit環境でも動きますけどね。

ただ、4GBを単体のアプリケーションに割り当てられるかは・・・。

まず前提として、32bit版のWindowsで4GB以上のメモリ空間を使用できるアプリケーションは、サーバ向けのデータベースか、それに相当する分散アプリケーションぐらいしかないはずですが、どういったアプリケーションを利用するのでしょうか?

もし、PAEやPSEを利用できるアプリケーションであれば、Serverシステム上(Windows2000 Serverより上位のサーバーシステム)で動作させることをお奨めします。これらのOS環境であれば、PAE、PSEをソフトウェア開発段階で想定している場合においてのみ、上限を超えたメモリ管理ができます。また、対応したハードウェア環境(一般にPCの大半においてCPU側では対応していますが、BIOSの制限にてPAE指定ができないことがあります)であれば、3,25GBメモリ上限を超える物理メモリや仮想メモリを指定できます。

これはあくまで、アプリケーションが対応していればという条件になります。32bitアプリケーションでは、NT Executiveの動作を保護するため、プログラムを作成する際に単体のアプリが使う規定のメモリ容量の上限を決めて作っていることが多いです。即ちアプリケーションが空間として持てる容量はプログラムの設計段階で確定しており、初期のWindowsNTで512MB~1024MBに、NT4/5,0(2000以上)向けの開発ツールでは標準上限が2GBほどになっています。

これを越えてメモリ空間を確保する場合は、ソフトウェアプラットフォームを開発する側(ソフトウェアの開発者)が2GBを越えるメモリ空間を確保するようにプログラミングの段階で指示しなければいけません。もっと具体的に分かりやすく説明すると、作成したデータファイルが2GBを越えて、そのときにメモリが100GBあった場合でも、ソフトウェアが100GBのメモリ空間を利用できるように設定されていなければ、メモリは使えないのです。

尚メモリには番地(アドレス)概念があり、物理的または仮想的にいくら容量が多くとも、アドレスがプログラム上で規定されていなければ、規定容量を越えるアドレスを指定できないことがあります。64bit環境では、32bitアプリケーションであると判断された場合OS側が、仮想的に4GBを越える領域に32bitエミュレーション環境を用意することもできますが、32bit環境ではOSの上限を超える場合は、指定が必要です。(元々32bitで設計されているため、32bitを越えるアドレス指定概念がないのです)


一般に、メモリ容量の上限を超えても動くように設計してあるソフトの多くは、メモリに全てを展開できないことを想定して作っているか、最初に記載したPAEやPSEを利用するように指定しています。PAEやPSEが使えるのであれば、仮想メモリを増やしたり、OSをServerなどの32bitでもPAE指定で4GBを越えられるOSに変更しメモリを増設すればより快適になるかもしれません。
元々、そういった環境に対応していないアプリケーションの場合は、64bitOS環境にしてもアプリケーションそのものが持つ壁(メモリ確保の上限)を越えられるわけではありません。

いかがでしょうか?
大量のメモリを消費するなら、PAE(何度も書きますがPAEは必ずソフトの設計段階でアプリケーションが対応していなければなりません。)が使えるアプリケーションかもしれません。
ただし、4GBを越える物理メモリが使える32bitOSはサーバなど限られた環境に限られますから、導入に関してはしっかり予算と対応状況なども検討されるのが良いでしょう。

以上です。
    • good
    • 0

実メモリ3G強で、3Gを3つ起動したら、仮に起動できたとしても、実メモリと仮想メモリ用HDDエリヤとのリード/ライトの嵐になり、実用にはならないと思いますが。

    • good
    • 0

ANo.5 追加です。



速度は関係なくただ単にメモリ空間が欲しいだけであれば、仮想メモリで
間に合います。
    • good
    • 0

32ビットアプリケーションで目一杯のメモリを複数動かすのであれば、


PCの増加はダメなのですか?分散化の考え方です。

少なくとも、3GB使用するアプリを32bit OSで3本同時に動かすとい
うのは、基本的に何かが違います。64bit OSが他のアプリでの制限なら
32bitマシンと64bitマシンの併用を考えます。

メモリを16GBとか載せて、13GBをRAM-DISKにして、仮想メモリをそこ
に取るのは、SSDなどと比べて軽く5倍は速いでしょう。
    • good
    • 0

>64bitですが、使用ソフトの仕様上使用できません。



とりあえず、そのソフトが何なのか書けば良いのでは?
仕様上使用出来ないってのは、実際に64bit版で動かした結果、動かなかった、と言うことでしょうか?
動作を試してもいないのなら、単なる思い込みでしかなく、64bit版で動かしたら、何の問題も無くあっさり動いた、ってオチもあり得るわけですが。

いずれにしても、32bit版使ってる限り無理な相談です。
何らかの回避方法があって、上限超えて使えるんなら、その使い方が一般的に広まってるはずですから。
    • good
    • 0

横から失礼しますよ・・・



>>保存データサイズに上限が存在しない保存データなので、
当ソフトは普通に3GB以上にもなります。起動時に平気に2GBは食います。

Excelでも情報量が多いと、起動し終わったときには簡単に2GB以上メモリを消費します。
Excelなので新規なら当然数百KB位しか食いませんが。
当ソフトはエクセルではありません。

これは、データがそれだけのメモリを食ってるのであって、ソフトが食ってるわけではないと思いますが?
どうでしょうか?
    • good
    • 0

まずもって32bitOSで「なんでメモリ容量の3GB強の上限が生じるのか?」をご理解ください、これは言ってしまえば「カーネルメモリの実質上限」なんで、当然「カーネルメモリの上限」なんて増やせません(だから64bit版がにわかに脚光を浴びるようになっているんです)。

なお「仮想メモリ」も「メモリ領域」です。
32bitOSで動作する32bit版アプリで「メインメモリを3GB食うソフト」なんてありません(思いっきり食っても2GBです)。

この回答への補足

返答ありがとうございます。

やっぱりカーネルの上限は増やせないんですね。
チップやら根本的な物理的な仕様の上限ですし。

あと、
保存データサイズに上限が存在しない保存データなので、
当ソフトは普通に3GB以上にもなります。起動時に平気に2GBは食います。

Excelでも情報量が多いと、起動し終わったときには簡単に2GB以上メモリを消費します。
Excelなので新規なら当然数百KB位しか食いませんが。
当ソフトはエクセルではありません。

新規作成で起動しただけのソフトで、3GBも消費するソフトは存在しないと思います。

64bitでカーネルが8GB上限っていうことは、
64bitでも情報量が多い(起動後平常時に2.5GB消費している)Excelを
4つは開けないということですね。

補足日時:2010/05/03 03:17
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!