最初は、システム全体で1つのページテーブルしかないのではないかと思いました。しかし、実際にはプロセスごとに1つのページテーブルがありますか?1つのページテーブルではなく複数のページテーブルを持つことのポイントは何ですか。
os161の一部を実装しています
最初は、システム全体で1つのページテーブルしかないのではないかと思いました。しかし、実際にはプロセスごとに1つのページテーブルがありますか?1つのページテーブルではなく複数のページテーブルを持つことのポイントは何ですか。
os161の一部を実装しています
ページテーブルには通常、固定数のエントリがあるため、仮想アドレス空間全体の一部のみが記述されます。これが、アドレス空間全体をカバーするためにそれらの複数が必要な理由です。現在、多くのOSでは、プロセスに個別の(つまり、他のプロセスと共有されていない)仮想アドレス空間があり、プロセスを相互に保護するのに役立ちます。これは、複数のページテーブルがあるもう1つの理由です。
ページテーブルは、仮想ページアドレスから物理ページアドレスに変換されます。各プロセスには独自の仮想アドレス空間があり、通常は同じ仮想アドレスを異なる物理アドレスにマップするため、個別のページテーブルが必要です。不思議なことに、複数のプロセスが異なる仮想アドレスを同じ物理メモリにマップする場合があります。これは、共有ライブラリまたはプロセス間通信を実装するために使用できます。