Linuxカーネルスワップシステムの詳細を学びたいと思います。
メモリ内のar / oまたはバイナリのコード部分にスワップが必要な場合は、すでにディスク上のファイルとしてサポートされているため、スワップファイル/パーティションに移動しないでください。
これが実際に機能する方法ですか?ファイルサポートr / oまたはrx割り当てページは専用ファイルに交換されますか?では、誰かがこの問題を処理するコードを教えてもらえますか?見つかりません。
ベストアンサー1
そうそう。ディスクからコンテンツを使用できるページは削除され、「個人ファイル」に置き換える必要もありません。スワップされていないバックアップストアを含むダーティページ(例えば、メモリマップファイル)がこのバックアップストアに書き込まれます。スワッピングは、バックアップストアを持たない取り外し可能ページにのみ使用されます。
ほとんどの場合、これは次kswapd
の操作を実行することで処理されます。リサイクル:
非同期でメモリページをスキャンして他の場所で利用可能なデータが含まれている場合は、そのページを解放するか、バックアップストレージデバイスに削除します(ダーティページを覚えていますか?)。
バラよりmm/vmscan.c
実装のため。