在Linux系统下,CPU总是处于下面三种状态之一:

1、内核态,运行进程上下文。

2、内核态,运行于中断上下文。

3、用户态,运行进程上下文。

进程上下文和中断上下文是Linux系统一个比较重要的概念,下面从程序的角度总结一下各属于哪种上下文:

1、中断处理程序处于中断上下文。

2、异常处理程序通常从用户空间的进程发起,处于进程上下文,可以切换到其他进程。

3、软中断(softirq)、tasklet等可延迟函数通常运行在中断上下文,而工作队列运行在进程上下文。

4、系统调用属于异常处理程序,运行在进程上下文。

注:系统调用是通过叫software interruppt的软件中断(一种异常)来实现的,跟软中断(softirq)没有关系。

5、信号处理函数属于异常处理程序,运行在进程上下文,在函数运行过程中可发生进程切换。

(完)

Logo

更多推荐