原子上下文和进程 context/interrupt 上下文

atomic context and process context/interrupt context

in Linux 设备驱动程序3 和了解 Linux 内核。一些流行语多次出现但没有定义

流程上下文:在这两本书中均有引用,但没有定义

中断上下文:了解Linux内核给出的定义

原子上下文:只出现在LDD3中,没有定义。 “它指定内核当前正在执行一个 中断处理程序或可延迟函数

看教程的时候,这三个流行语被很多东西引用了。所以我觉得最重要的是试着弄清楚确切的定义,然后我才能理解那些参考文献。

我也在网上查了下,不是很清楚sources.Could谁给个好的定义,那个定义的出处?非常感谢

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

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

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

内核的一个基本原则是在中断或原子上下文中,内核不能访问用户space,内核不能休眠。

引用 Kaiwan N Billimoria 的 Linux 内核编程一书: