まあ、ここから得られるものよりも簡潔な答えは期待できません.
<ブロック引用>32 ビット OS について私が理解していることは、アドレスは 32 ビットで表現されるため、OS はせいぜい 2^32 =4GB のメモリ空間しか使用できないということです
プロセスのほとんど 対応できる 4GBです。 メモリを混同している可能性があります アドレス空間で . プロセスは、アドレス空間より多くのメモリを持つことができます。 それは完全に合法です ビデオ処理やその他のメモリを集中的に使用するアプリケーションでは一般的です。 プロセスには数十 GB のメモリを割り当てることができ、アドレス空間に自由にスワップすることができます。 ユーザーに入ることができるのは 2 GB だけです 一度にアドレス空間。
家に 4 台分のガレージがある場合でも、50 台の車を所有できます。 すべてをガレージに保管することはできません。 少なくとも 46 個を格納するには、別の場所に補助ストレージが必要です。どの車をガレージに保管し、どの車を通りの駐車場に保管するかはあなた次第です。
<ブロック引用>これは、Windows であろうと UNIX であろうと、32 ビット OS を意味しますか?マシンのハード ディスクに RAM + ページ ファイルが 4GB を超える場合 (たとえば、8GB RAM と 20GB ページ ファイル)、「メモリが使い果たされる」ことはありませんか?
絶対に、というわけではありません。 1 つのプロセスがそれよりも多くのメモリを使用する可能性があります。ここでも、プロセスが使用するメモリの量は、プロセスが使用する仮想アドレス空間の量とはほとんど無関係です。 ガレージに保管している車の数が、所有している車の数とはまったく無関係であるように.
さらに、2 つのプロセスが非プライベート メモリ ページを共有できる . 20 個のプロセスがすべて同じ DLL をロードする場合、すべてのプロセスがそのコードのメモリ ページを共有します。 仮想メモリ アドレス空間を共有しない 、メモリを共有します .
はっきりしない場合の私のポイントは、メモリとアドレス空間を同じものと考えるのをやめるべきだということです。これらはまったく同じものではないからです。
<ブロック引用>この 32 ビット OS マシンに 2GB の RAM と 2GB のページ ファイルがある場合、ページ ファイルのサイズを大きくしてもパフォーマンスは向上しません。これは本当ですか?
50 台の車と 4 台分のガレージ、そして通りの先に 100 台分の駐車場があります。駐車場のサイズを 200 スポットに増やします。 50 の追加駐車スペースではなく 150 の追加駐車スペースができた結果、速くなった車はありますか?
Ramesh の答えは完全に間違っています。プロセスは、アドレス空間よりも多くのメモリを持つことはできません。これは、単にアドレス空間をアドレス指定できないためです!!4GB を超えるメモリを使用するには、C/C++ でポンターを使用するように、プロセスはアドレスでアクセスする必要があります。たとえば、10 GB の RAM を使用できると想定されている場合、32 ビットのポインターが最大 4 GB に到達できる場合、プロセスに 5 GB にあるデータにアクセスするように指示するにはどうすればよいでしょうか?彼の説明はすべてオペレーティング システムに関するものです。たとえば、64GB のプールから、最大で 4GB の特定のブロックをアクティブ化できます。そのため、同時に最大 4GB が常に存在し、どのプロセスも最大 4GB にアクセスできます。次に、別のプロセスに対して、SO はプールから 4GB の別のブロックをアクティブ化できますが、プロセスは再び 4GB に制限されます。 -bit プロセスは 3GB です。