32ビットOSについて私が理解しているのは、アドレスが32ビットで表現されているため、最大でOSが2 ^ 32 = 4GBのメモリスペースを使用できることです
プロセスが対応できる最大サイズは4GBです。メモリとアドレススペースを混同する可能性があります。 プロセスは、アドレス空間よりも多くのメモリを持つことができます。これは完全に合法であり、ビデオ処理やその他のメモリ集約型アプリケーションでは非常に一般的です。 プロセスには、数十GBのメモリを割り当てて、自由にアドレススペースにスワップしたり、アドレススペースからスワップアウトしたりできます。一度に2 GBのみがユーザーアドレススペースに移動できます。
自宅に4台のガレージがあれば、50台の車を所有できます。それらをすべてガレージに保管することはできません。少なくとも46個を保存するには、別の場所に補助ストレージが必要です。ガレージに保管する車と通りの駐車場に保管する車はあなた次第です。
これは32ビットOSを意味しますか、WindowsでもUNIXでも、マシンのRAM +ページファイルが4GBを超えるハードディスクにある場合(たとえば、8GB RAMと20GBページファイル)、「メモリが使い果たされる」ことはありませんか?
絶対にそれはそれを意味しません。1つのプロセスがそれ以上のメモリを使用する可能性があります!繰り返しますが、プロセスが使用するメモリの量は、プロセスが使用する仮想アドレス空間の量とほぼ完全に無関係です。ガレージに保管する車の数は、所有する車の数とはまったく関係ありません。
さらに、2つのプロセスが非プライベートメモリページを共有できます。20個のプロセスがすべて同じDLLをロードする場合、すべてのプロセスはそのコードのメモリページを共有します。彼らは仮想メモリアドレススペースを共有しません、彼らはメモリを共有します。
はっきりしない場合、私のポイントは、メモリとアドレス空間を同じものと考えるのをやめるべきだということです。なぜなら、それらはまったく同じものではないからです。
この32ビットOSマシンに2GBのRAMと2GBのページファイルがある場合、ページファイルのサイズを増やしてもパフォーマンスは向上しません。これは本当ですか?
50台の車と4台の車庫があり、通りに100台の駐車場があります。駐車場のサイズを200スポットに増やします。50台の追加駐車スペースの代わりに150台の追加駐車スペースを使用した結果、車の速度が上がりますか?