プロセスのページテーブルはいつメモリにロードされますか?

プロセスのページテーブルはいつメモリにロードされますか?

オペレーティングシステムが特定のプロセスのページテーブルをいつメインメモリにロードするかを知りたいです。コースが整理される時ですか?オペレーティングシステムはプロセスページテーブルをメインメモリに直接ロードできますか?

プロセッサがページに対応するページエラーを生成しない限り、何もメインメモリに入ることができないという考えがあります。ページテーブルにも同様に適用されますか?または私の概念は間違っています。

PS:Linuxベースのシステムに答えてくれてありがとう。

ベストアンサー1

特定のオペレーティングシステムとプロセッサについて言及していないので、この質問に理論的に答えます。これはほとんどのUNIXシリーズシステムに適用されますが、微妙な違いがある可能性があります。

プロセスのメモリにページがある場合、ページテーブルは(カーネル)メモリに存在する必要があります。プロセスを実行するにはページテーブルを使用できる必要があり、プロセスを実行することを選択したときに有効にする必要があります。一部のシステムでは、実行中のプロセスの全ページテーブルが実際にプロセスアクティベーションの一部としてハードウェアにロードされます。他のシステムでは、ページテーブルがメモリに残り、それへのポインタがハードウェアレジスタにロードされます。

ただし、プロセスが完全に置き換えられ、もはや物理メモリが割り当てられていない場合、ページテーブルは実際にはまったく必要ありません。プログラムを実行するためにページが初めてロードされると、関連ページ表が再作成される可能性があります。一部のシステムはこの最適化を実行せず、代わりにカーネル空間の各プロセスに対してアクティブページテーブルを保持します。

しかし、上記は一般化されており、具体的な詳細は非常に多様です。詳しくはRTSLをご覧ください。

おすすめ記事