代码之家  ›  专栏  ›  技术社区  ›  nathan

原子上下文和进程上下文/中断上下文

  •  0
  • nathan  · 技术社区  · 7 年前

    过程上下文:在两本书中都有引用,但没有定义

    中断处理程序或可延迟函数“

    在阅读教程时,这三个流行语被很多东西引用。所以我认为最重要的是试着找出准确的定义,然后我就能理解这些参考文献。

    2 回复  |  直到 7 年前
        1
  •  3
  •   Tony Tannous    7 年前

    进程上下文是寄存器的值。当发生上下文切换时,一个进程被推迟,寄存器的内容被保存,这样当进程再次运行时,您可以继续从同一点运行。堆栈指针、指令指针等。

        2
  •  1
  •   livinston    3 年前

    article 给出了很好的解释。让我在这里总结一下:

    1. 流程上下文-常规流程和系统调用在此上下文中执行,并且可以被IRQ中断
    2. 原子上下文-IRQ通常在此上下文中执行,它们不属于任何特定进程,而是由某些设备调用(为了简单起见,忽略异常)。一旦中断上下文休眠或放弃CPU,它就无法被唤醒。所以它也被称为原子上下文。

    内核的一个基本原则是,在中断或原子上下文中,内核无法访问用户空间,并且内核无法睡眠。

    引用Kaiwan N Billimoria的《Linux内核编程》一书: enter image description here