私たちが探している物理ページがスワップ領域にあるときのページテーブルの内容

私たちが探している物理ページがスワップ領域にあるときのページテーブルの内容

この質問がLinuxディストリビューションによって異なる場合は、「一般的な方法」(例:Linuxディストリビューションで最も一般的な実装)に答えてください。

プロセスのページテーブルでは、探しているページがメインメモリにマッピングされる物理的な方向を見つけることができます。または、探しているページがメインメモリになく、ディスクからキャプチャする必要がある場合は、ディスクへのポインタを見つけることができます。ディスク。しかし、私の質問は:私たちが探しているページがスワップに置かれたら、プロセスのページテーブルで何を見つけるのでしょうか?ディスクへのポインタ(ただしスワップ領域のページへのポインタ)を見つけるか、物理的な方向を見つけることができますが、この物理的な方向は「仮想方向」なので、mainMemory + swapArea統合メモリを作成します(たとえば、16GBを使用している場合)。メインメモリ)メモリ+ 2 GBスワップメモリ​​ページテーブルでは、探しているページがX方向(Xは17GBに相当する方向)にあることがわかります。つまり、スワップメモリ​​で見つけることができるという意味です(なぜなら > 16GB 方向))?覚えておいてください。 16GBのメインメモリ+2GBのスワップメモリ​​を想定しています。

答え1

スワップアウトされるページのページテーブルエントリには、その事実を表すビット(少なくとも1つ、詳細はアーキテクチャによって異なります)と、スワップされたページを記述する情報への2つの部分で構成されるポインタが含まれています。各スイッチングデバイスまたはファイルに対応swap_info構造、それぞれには、ページテーブルエントリをスワップデバイスまたはファイルの場所に関連付けるマッピングがあります。

バラよりカーネルはスワップパーティション\ファイルのスワップメモリ​​ページをどのように処理しますか?そして「交換管理」の章メルゴーマ​​ンLinux仮想メモリマネージャについてもっと学ぶ。

関連情報