問題タブ [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.

0 投票する
1 に答える
45 参照

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_0x400000page_pid_0_0x400000.

プロセス1が現在スケジュールされている場合、私(OS)はどのようにしてpage_pid_1_0x400000from仮想アドレスを識別できますか0x400000(メモリアクセス命令は仮想アドレスしか認識せ0x400000ず、プロセスIDを認識しないため)?