【问题标题】:What is "process context" exactly, and how does it relates to "interrupt context"?究竟什么是“进程上下文”,它与“中断上下文”有什么关系?
【发布时间】:2017-11-28 08:29:43
【问题描述】:

下面这句话是什么意思:“内核在进程上下文中执行”

这是否意味着如果 CPU 正在执行某个进程,然后发生了某个中断(系统调用、按键等),CPU 将保持当前正在运行的进程的页表加载和那么它会执行驻留在进程内核空间的中断处理程序吗?

如果是这个意思,那么好像中断处理程序是在进程上下文中执行的,那么中断上下文是什么意思呢?

【问题讨论】:

    标签: linux linux-kernel operating-system


    【解决方案1】:

    进程上下文是它的当前状态。 我们需要保存当前正在运行的进程的context,以便它可以在处理中断后恢复。

    进程上下文基本上是它的当前状态(它的寄存器中的内容)。

    esp
    ss
    eip
    cs
    and more.
    

    我们需要保存instruction pointer (EIP)CS (Code Segment) 以便在处理完中断后我们可以从停止的地方继续运行。


    中断处理程序代码驻留在Kernel 内存中。一旦发生中断,我们立即从用户模式切换到内核模式。当前运行进程的状态被保存,一部分在用户栈上,另一部分在内核栈上(取决于架构)。假设它是x86,则通过从TSSInterrupt descriptor table 加载适当的sscsespeip 来运行中断处理程序。

    【讨论】:

      猜你喜欢
      • 2011-10-12
      • 2021-01-26
      • 2011-09-26
      • 1970-01-01
      • 2019-08-12
      • 1970-01-01
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多