0
プロセススイッチがあり、新しいプロセスのページテーブルとページディレクトリを使用する必要がある場合は、新しいプロセスのページディレクトリの場所について新しいプロセス(コンテキストスイッチ後)のページテーブルとページディレクトリの検索
私は新しいプロセスのページディレクトリが物理メモリに保存されていることを知っています。しかしカーネルはどこでそれを見つけるべきかを知っていますか?
プロセススイッチがあり、新しいプロセスのページテーブルとページディレクトリを使用する必要がある場合は、新しいプロセスのページディレクトリの場所について新しいプロセス(コンテキストスイッチ後)のページテーブルとページディレクトリの検索
私は新しいプロセスのページディレクトリが物理メモリに保存されていることを知っています。しかしカーネルはどこでそれを見つけるべきかを知っていますか?
一般に、カーネルはシステム上の各プロセスを記述する状態の構造を保持します。その構造のどこかに、プロセスの「ルート」ページテーブルのアドレスがあります。 x86マシンでは、これは新しいページテーブルに切り替えるためにCR3レジスタに格納する必要があります。ときどきこのレジスタは暗黙のうちに保存され、大量のCPU状態を保存/復元する大きな操作の副作用として復元されるか、時にはこの値がカーネルによって明示的に管理されることがあります。
struct procはプロセスの状態を保持します。したがって、この構造は "ルート"ページテーブルのアドレスを保持しますか?プロセスがコンテキストになると、フィールドの1つの値がCR3に配置されますか? –
はい、そうです。 –