Linuxカーネルはカーネルスタックから割り込みスタックにどのように切り替えますか?

Linuxカーネルはカーネルスタックから割り込みスタックにどのように切り替えますか?

ユーザーモード操作が中断された場合はどうなりますか? TSSを参照して、CPUがカーネルモードスタックに切り替えられることを知っています。それでは、カーネルはいつ、どのようにIRQスタックに切り替えられますか?

ベストアンサー1

x86_64では、カーネルコードは割り込み時に割り込みスタックに切り替わります。各 CPU には割り込みスタックがあります。ユーザーモードで実行中に割り込みが発生すると、実際には2つのスタックスイッチが発生します。まず、そのスレッド/プロセスのユーザースタックからカーネルスタックへ(ハードウェアによって自動的に実行されます)、次に割り込みスタックに切り替わります。バラよりhttps://www.kernel.org/doc/Documentation/x86/kernel-stacks

おすすめ記事