在一个操作系统课程中,我花了一段时间才开始研究一个旧的,非抢占式的Linux内核(2.4.X).但是,我们被告知内核中可能同时存在多个控制路径.这与内核的非抢占性质相矛盾吗? 编辑:我的意思是,没有上下文切换内部的内核.上次我尝试提出这个问题时,得到了回答"好吧,Linux内核是先发制人的,所以没有问题".
在2.4内核中,虽然内核代码不能被其他内核代码任意抢占,但内核代码仍然可以通过休眠自愿放弃CPU(这显然是很常见的情况).
此外,内核代码总是可以被中断处理程序抢占(除非它专门禁用了中断),2.4内核也支持SMP,允许多个CPU同时在内核中执行.