仮想メモリとスワップ領域は同じですか?

仮想メモリとスワップ領域は同じですか?

私はしばらくLinuxを使ってきましたが、仮想メモリと言えばスワップスペースを言いますか?たとえば、topコマンドには別々の列があります。仮想現実技術(仮想メモリ)、Linuxマシンのスワップスペースを言うのでしょうか?仮想メモリとスワップスペースが同じかどうかを知りたいです。誰でもこの混乱を解決するのに役立ちますか?

ベストアンサー1

topマンページ次のように区別します。

私たちの目的のために、3種類のメモリがあり、そのうちの1つはオプションです。 1つ目は、コードとデータの実行または参照中に常駐する必要がある限られたリソースである物理メモリです。以下は、物理メモリの需要が過剰になったときに変更された(ダーティ)メモリを保存して取得できるオプションのスワップファイルです。最後に、次の目標を達成できるほぼ無制限のリソースである仮想メモリがあります。

  1. 要約、物理メモリアドレス/制限の影響を受けない
  2. 分離、各プロセスは別々のアドレス空間にあります。
  3. 共有、1つのマッピングで複数の要件を満たす
  4. 柔軟性、ファイルへの仮想アドレスの割り当て

VIRTの列には、プロセスによってtop割り当てられたアドレス空間の量が表示されます。ほとんどは通常使用されません。いつはい使用後、カーネルはプロセスが物理メモリを使用できるようにする必要があります。理想的には、この物理メモリは利用可能なメモリプールから取得でき、他のものには影響しません。ただし、使用可能な物理メモリが不足している場合、カーネルはメモリ内の他のデータを削除する必要があります。それこれがスワップスペースが入るところです。カーネルがメモリを使用可能にする方法の1つは、その内容をスワップ空間に書き込むことです。

VIRT仮想メモリはやや抽象的な概念です。 show の列と同様に、topプロセス表現が使用できるすべてのメモリです。スワップ空間は、プロセスがメモリを使用する必要があるときにカーネルがメモリを使用できるようにする方法です。

おすすめ記事