問題タブ [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_0x400000from仮想アドレスを識別できますか0x400000(メモリアクセス命令は仮想アドレスしか認識せ0x400000ず、プロセスIDを認識しないため)?