32ビットシステムでは、RAMの最大量として4 GBしか処理できないことがよく知られています。
Linuxでは、この制限はスワップパーティションにも適用されますか?RAM +スワップが4 GBを超える場合、それは完全に使用されますか?
答えが「いいえ、それはスワップには適用されません」である場合、なぜですか?
32ビットシステムでは、RAMの最大量として4 GBしか処理できないことがよく知られています。
Linuxでは、この制限はスワップパーティションにも適用されますか?RAM +スワップが4 GBを超える場合、それは完全に使用されますか?
答えが「いいえ、それはスワップには適用されません」である場合、なぜですか?
回答:
いいえ、RAMはデスクのようなもので、スワップスペース/仮想メモリはファイリングキャビネットのようなものです。多くの情報をファイリングキャビネットに入れることができますが、アクセスするのは困難です。使いたい書類は、引き出して机の上に置く必要があります。問題は、デスクが一度にたくさんの書類しか持てないことです。
32ビットマシンは、4GB(2 ^ 32、つまり約40億バイト)の大きさのデスクしか持つことができませんが、ファイリングキャビネットはほぼ無制限です。机がいっぱいになり、ファイリングキャビネットにある別のページを見る必要があるときに、書類を「交換」する必要があります。
スワップに適用されない理由は、RAMのコンテンツへのアクセスまたはRAMからのコードの実行が、処理できる数値のサイズに制限されているためです。机の上には40億の単語しか持てないので、それは数えるほど高く、単語を直接操作する必要があると考えてください。「単語3,547のスペルが間違っています。単語3,452,780を「Hello」に変更してください。単語6を削除してください。」
現在、各ページには4,000語が含まれている場合があります。問題は、スワップスペースを参照しているときに、ワード単位ではなくページ単位で参照することです。したがって、まだ40億までしか数えることができませんが、40億ページまで数えることができます。40億ページには、実際には16 兆ワードが含まれています。
64ビットマシンは数が多いので、十分な大きさのデスクがあれば、すべてのページを一度にデスクに配置できます。32ビットマシンに超大型のデスクを置いても、40億までしか数えられないため、デスク上の余分な単語をすべて参照する方法はありません。