プロセスのカーネルモードでコンテキスト切り替えが発生したときにカーネルスタックポインタを格納するためにページテーブルが使用されますか?

プロセスのカーネルモードでコンテキスト切り替えが発生したときにカーネルスタックポインタを格納するためにページテーブルが使用されますか?

2つの質問があります。

  1. ユーザー空間アプリケーション/プロセスがカーネルモードで実行されているとします。今コンテキスト切り替えが発生すると、プロセスのカーネルスタックポインタがtask_struct。これを行うには?にマップされる(これは)PTEページテーブルに(ページテーブルエントリ)を作成します。Kernel Stack PointerVirtual addressPhysical Address
  2. の場合、kthreadコンテキスト切り替えをサポートするページテーブルはありますか?

ベストアンサー1

すべての仮想アドレスは、それが指すメモリ領域に対応するページテーブルエントリがある場合にのみ使用できます。カーネルモードで実行されるプロセスはカーネルスタックを使用するため、コンテキスト切り替えを処理する前にPTEが存在します。

追加のPTEは必要ありません。お店ポインタを保存するために新しいメモリ領域が必要ない限り、ポインタです(ここではそうではありません)。

おすすめ記事