一つインストールしました32ビット RHELオペレーティングシステム中64ビットシステム。
WikiページからPAE:
Linuxカーネルには、バージョン2.3.23以降、完全なPAEモードのサポートが含まれています。 Linus Torvaldsは1.3.15でPAEの4MBページのサポートに言及し、[18] 32ビットコンピュータから最大64GBのメモリにアクセスできます。
サーバーの1つの現在のカーネルバージョンは次のとおりです。
2.6.32-431.17.1.el6.i686
質問1
カーネルバージョンが別のバージョンを追加することを意味しますか?24GB RAMを既に持っている容量で8GB RAM、フル32GB物理メモリを使用できますか?
現在システムに表示される内容8GB RAMを使用できます(free
コマンドを使用して確認しました)。
質問2
私はまだ仮想メモリの概念が混乱しています。
32ビットシステムは仮想メモリをどのように使用しますか?
私は読んだ32ビットRHELはブロック単位でメモリを使用します。サムGB。
これは、どの時点でも最大数しかないことを意味しますか?サムメインメモリGB?
私の考えでは、私がそうしたときから32すぐに利用可能なGBメモリ32GB のデータがメインメモリに常駐できます。特に、私は次の答えを理解しようとしています。ここ:
各プロセスは独自のアドレス空間で実行され、32ビットは各プロセスのアドレス空間を約3 GBに制限します。 32ビットアプリケーションで使用される総メモリ量はまったく関係ありません。歩き回ることはありません。
答え1
まあ、私は以下に提供されているよりも簡潔な答えを期待しません。ここ。
32ビットオペレーティングシステムについて私が理解したのは、アドレスが32ビットで表示されるため、オペレーティングシステムが最大2 ^ 32 = 4 GBのメモリスペースを使用できることです。
最も重要なことプロセスできる住所4GBです。あなたは混乱する可能性がありますメモリそしてアドレス空間。 プロセスはアドレス空間よりも多くのメモリを持つことができます。それは完全に正当なそしてビデオ処理やその他のメモリ集約型アプリケーションでは一般的です。 プロセスは数十ギガバイトのメモリを割り当て、必要に応じてアドレス空間の内外に置き換えることができます。 2GBのみアクセス可能ユーザー単一アドレス空間。
家に4台のガレージがあっても、まだ50台の車を保有できます。ガレージに入れることはできません。車庫に駐車する車両と道路外の駐車場に駐車する車両の両方を46台以上保管するには、他の場所に補助保管所が必要です。
これは、コンピュータのハードドライブに4 GB以上のRAM +ページングファイル(8 GB RAMや20 GBページングファイルなど)がある場合、WindowsやUnixなど、すべての32ビットオペレーティングシステムで「メモリ不足」が発生しないことを意味します。
そんな意味は絶対ではありません。単一のプロセスでは、これ以上のメモリを使用できます!再びプロセスで使用されるメモリ量は、プロセスで使用される仮想アドレス空間の量とほとんど関係がありません。ガレージ内の自動車の数は、所有している自動車の数とまったく関係のないものと同じです。
そして、両方のプロセスがプライベートメモリページを共有できます。。 20個のプロセスがすべて同じDLLをロードすると、そのプロセスはすべてそのコードのメモリページを共有します。彼らは共有しません仮想メモリアドレス空間、彼らは共有するメモリ。
まだ明確ではない場合、私のポイントは次のとおりです。メモリとアドレス空間が同じものだと思うのをやめるべきです。なぜなら、それらはまったく同じものではないからです。
この32ビットオペレーティングシステムシステムに2 GBのRAMと2 GBのページファイルがある場合、ページファイルのサイズを増やしてもパフォーマンスが向上しません。これは本当ですか?
車両50台と車両4台を収容できるガレージ、車両100台を駐車できる路上駐車場があります。駐車場の規模を200台まで増やします。今(50の追加駐車スペースの代わりに)150の追加駐車スペースがあるので、車が速くなりますか?
答え2
Rameshの答えは完全に間違っています。プロセスはアドレス指定が不可能なので、アドレス空間よりも多くのメモリを持つことはできません! 4GB以上のメモリを使用するには、C / C ++でフォントを使用するのと同じように、プロセスはアドレスでメモリにアクセスする必要があります。たとえば、10GBのRAMがある場合、32ビットポインタが最大4GBまで拡張できる場合、プロセスが5GBのデータにアクセスするようにどのように通知できますか?不可能。彼の説明はすべてオペレーティングシステムに関連しています。 64GB プールから特定の 4GB ブロックまで有効にできます。したがって、最大同時実行性は常に4 GBであり、すべてのプロセスは最大4 GBにアクセスできます。これにより、SOはさまざまなプロセスに対してプール内でさまざまな4 GBのブロックを有効にできますが、プロセスは再び4 GBに制限されます。実際、32ビットポインタは最大4 GBまでアドレスできますが、32ビットプロセスの制限は3 GBです。