すべてのプロセスのカーネル スタックは共有されていますか、それともプロセスごとに別々のカーネル スタックがありますか? プロセスごとに別々である場合、このスタック ポインターはどこに保存されますか? task_struct 内ですか?
ベストアンサー1
共通カーネル メモリは 1 つだけです。その中に、各プロセスに独自の task_struct + カーネル スタック (デフォルトでは 8K) があります。
コンテキスト スイッチでは、古いスタック ポインターがどこかに保存され、実際のスタック ポインターは、実行される新しいプロセスのスタックの最上部 (またはハードウェア アーキテクチャに応じて最下部) を指すように設定されます。