当前位置: 技术问答>linux和unix
请问:2.6的内核是抢占式还是非抢占式的?如何更改?
来源: 互联网 发布时间:2016-01-01
本文导语: 请问:2.6的内核是抢占式还是非抢占式的?如何更改? | 在2.6内核中,引入了抢占能力,现在,只要重新调度是安全的(只要没有持有锁,内核就可以进行强占),那么内核就可以在任何时间前抢...
请问:2.6的内核是抢占式还是非抢占式的?如何更改?
|
在2.6内核中,引入了抢占能力,现在,只要重新调度是安全的(只要没有持有锁,内核就可以进行强占),那么内核就可以在任何时间前抢占正在执行的任务.
为了支持内核抢占所做的地一处 变动就是为每个进程的thread_info因如了preempt_count计数器(使用锁的时候+1,释放锁的时候-1).当值为0 的时候,内核就可以抢占.
如果内核中的进程被阻塞了,或者显示的调用schedule(),内核抢占就会显示的发生.
建议看一下linux内核设计与实现,第二版,将的就是2.6内核,非常不错哦 :)
为了支持内核抢占所做的地一处 变动就是为每个进程的thread_info因如了preempt_count计数器(使用锁的时候+1,释放锁的时候-1).当值为0 的时候,内核就可以抢占.
如果内核中的进程被阻塞了,或者显示的调用schedule(),内核抢占就会显示的发生.
建议看一下linux内核设计与实现,第二版,将的就是2.6内核,非常不错哦 :)
|
配置内核时候指定 CONFIG_PREEMPT 可以配置内核抢占。
LKD 第一版就是 2.6 内核了。
LKD 第一版就是 2.6 内核了。