Linuxプロセスのカーネルスタック 質問する

Linuxプロセスのカーネルスタック 質問する

すべてのプロセスのカーネル スタックは共有されていますか、それともプロセスごとに別々のカーネル スタックがありますか? プロセスごとに別々である場合、このスタック ポインターはどこに保存されますか? task_struct 内ですか?

ベストアンサー1

共通カーネル メモリは 1 つだけです。その中に、各プロセスに独自の task_struct + カーネル スタック (デフォルトでは 8K) があります。

コンテキスト スイッチでは、古いスタック ポインターがどこかに保存され、実際のスタック ポインターは、実行される新しいプロセスのスタックの最上部 (またはハードウェア アーキテクチャに応じて最下部) を指すように設定されます。

おすすめ記事