全部博文(306)
分类: LINUX
2010-05-19 09:52:15
在2.4及先前的内核中,仅有用户模式进程允许上下文切换,并被其他进程替代,而内核模式代码则垄断CPU直到它自身自动放弃CPU或有中断或异常发生。 在2.6引入了内核抢占后,大多数内核模式代码也可以上下文切换了。
内核代码服务于系统调用运行于所代表用户进程的进程上下文,而中断服务程序则运行于中断上下文。进程上下文和中断上下文互相不联系。
运行于进程上下文的内核代码可被抢占,而运行于中断上下文的不可被抢占,一直运行到结束。因此在中断上下文中不能做以下的事情:
(1)睡眠或放弃处理器;(2)请求一个mutex;(3)执行耗时的任务;(4)访问用户空间虚拟内存