質問: ページテーブルはどこに保存されますか 私の質問は、「ページテーブルはどこに保存されているか:物理メモリ(ram)に、またはユーザースペースのデータ構造として」です。ps:これまでに理解したこと:プロセスメモリレイアウトにはいくつかのセグメント(コード/データ/ヒープ/スタックなど)があります。現在、セグメンテーションは使用されていないため、ページングが使用され、各セグメントには多くの固定サイズのページがあります。各セグメントには、対応する仮想アドレス空間(vad)もあります。これらはプライマリページテーブルを指し、セカンダリページテーブルを指し、最後にディスク内のページフレームを指すpteを指します(??これが正しいことを願っています)。したがって、vadがユーザースペースにある場合、ページテーブルもユーザースペースにあるのでしょうか、それともram?
回答: ウィキからの引用- ページテーブル 仮想アドレス空間内のすべての仮想ページのマッピングを含むページテーブル構造を作成すると、無駄になる可能性があることが言及されました。 しかし、ページテーブルを仮想メモリに配置し、仮想メモリシステムにページテーブルのメモリを管理させることで、過剰なスペースの問題を回避できます。 ただし、この線形ページテーブル構造の部分は、重要な部分を探す循環ページフォールトを防ぐために、常に物理メモリに常駐する必要があります。ページテーブルに存在しないページテーブル、ページテーブルに存在しないページテーブルなど。