|
发表于 2006-1-22 01:54:57
|
显示全部楼层
建议上面二位去看一看LKD第4章讲Preemption and Context Switching的那一部分
如果想真正搞清楚这个问题
说一个内核是可抢占内核
指的主要是内核在以某进程身份执行的时候(这种情况对应于某进程执行系统调用时),可以被另一个有更高优先级的进程所抢占
是否应该发生抢占是靠内核自己去检查的,检查current_thread_info的flags里的need_resched位
不像中断的机制,主要是依靠硬件来实现的,只要一个中断没有被屏蔽,在中断发生时就会自动执行某个事先设定好的函数
在Linux里,在中断处理函数中
内核不会去检查need_resched位
所以进程无论如何不可能抢占中断处理函数 |
|