問題タブ [swapfile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - ページフォールト時に仮想アドレスで一意のスワップページを見つける方法
たとえば、3 つのプロセスがあり、それぞれ0x400000
がテキスト セクションの仮想アドレスを使用している場合。4KB
また、ユーザー プロセス用の物理ページは 1 つだけです。
プロセス 0 が物理ページ (仮想アドレス0x400000
) を使用しているとします。物理ページ データが であると仮定しますpage_pid_0_0x400000
。
プロセス 1 が OS によってスケジュールされ、page_pid_1_0x400000
プロセス 1 が実行可能ファイルから物理ページにロードされる場合。次に、page_pid_0_0x400000
データをディスクにスワップアウトする必要があります。
プロセス 2 も読み込まれると、page_pid_2_0x400000
物理ページのデータもディスクにスワップ アウトされます。
これで、ディスク上に、同じ仮想アドレス空間の 2 つのコピー、つまり0x400000
:page_pid_1_0x400000
とpage_pid_0_0x400000
.
プロセス1が現在スケジュールされている場合、私(OS)はどのようにしてpage_pid_1_0x400000
from仮想アドレスを識別できますか0x400000
(メモリアクセス命令は仮想アドレスしか認識せ0x400000
ず、プロセスIDを認識しないため)?