中断句柄运行时使用谁的堆栈?

时间:2015-04-01 17:47:56

标签: linux kernel interrupt

我试图了解处理器考虑中断时所遵循的步骤。阅读理解Linux内核我发现首先处理器需要确定与中断相关的向量是什么,然后以某种方式计算ISR的地址。检查中断是否由授权来源发出后,检查是否有权限更改。

“检查特权级别是否发生了变化 - 也就是说,如果CPL与所选的Segment Descriptor的DPL不同。如果是,控制单元必须开始使用与新特权级别相关联的堆栈”< / p>

我的问题是:

  1. 如果中断以同一进程为代价运行 当中断发生时正在运行,为什么不使用他的进程'内核堆栈?
  2. 不同的权限级别有不同的堆栈?我知道每个进程只有一个内核堆栈。
  3. 如果是这样,为什么需要切换堆栈?

0 个答案:

没有答案