仮想メモリの概念は、RAMの物理アドレスと一致しない仮想アドレス空間を作成することである。システムはディスクにメモリのフルコピーを保存し、最も頻繁に使用されるデータのみをRAMにキャッシュします。これを実現可能にするために、仮想メモリを次のように分割します。ページ;一般的なページサイズは4KBです。また、RAMを次のように分割します。ページフレーム、それぞれはページと同じサイズで、仮想メモリ内のすべてのページを収容する準備ができています。
Linuxシステムを実行していますが、メインメモリに十分なスペースがあるため、スワップ領域は空です。つまり、ページ付きの仮想メモリがまだ存在し、プロセスはメインメモリ内のそのセグメントの物理アドレスではなく仮想アドレスを持続しますか?
ディスクにスワップ領域がない場合、システムにも仮想メモリがありますか?
つまり、Linuxシステムでは仮想メモリを常に使用できますか?プロセスには常に仮想アドレスがありますか?
ベストアンサー1
仮想メモリ(ページング)はCPUレベルで有効になります。これは、CPUがMMUを使用して仮想アドレス(アプリケーションに示すように)を物理アドレスに変換することを意味します。メモリはページに分割されます。ページはメモリにロードしたり、ディスクにロードしたりできます。ページがディスク上にある場合、ページにアクセスすると、オペレーティングシステムが処理するページエラーが発生します(オペレーティングシステムはディスクからページをロードします)。
したがって、スワップがなければ、まだ仮想メモリがあり、CPUはまだMMUを使用し、メモリをページに分割しますが、OSはそのページをディスクに移動できません。