日期:2014-05-16 浏览次数:20639 次
在Linux系统下,CPU总是处于下面三种状态之一:
1、内核态,运行进程上下文。
2、内核态,运行于中断上下文。
3、用户态,运行进程上下文。
进程上下文和中断上下文是Linux系统一个比较重要的概念,下面从程序的角度总结一下各属于哪种上下文:
1、中断处理程序处于中断上下文。
2、异常处理程序通常从用户空间的进程发起,处于进程上下文,可以切换到其他进程。
3、软中断(softirq)、tasklet等可延迟函数通常运行在中断上下文,而工作队列运行在进程上下文。
4、系统调用属于异常处理程序,运行在进程上下文。
注:系统调用是通过叫software interruppt的软件中断(一种异常)来实现的,跟软中断(softirq)没有关系。
5、信号处理函数属于异常处理程序,运行在进程上下文,在函数运行过程中可发生进程切换。