5 个解决方案
#1
在2.6内核中,引入了抢占能力,现在,只要重新调度是安全的(只要没有持有锁,内核就可以进行强占),那么内核就可以在任何时间前抢占正在执行的任务.
为了支持内核抢占所做的地一处 变动就是为每个进程的thread_info因如了preempt_count计数器(使用锁的时候+1,释放锁的时候-1).当值为0 的时候,内核就可以抢占.
如果内核中的进程被阻塞了,或者显示的调用schedule(),内核抢占就会显示的发生.
建议看一下linux内核设计与实现,第二版,将的就是2.6内核,非常不错哦 :)
为了支持内核抢占所做的地一处 变动就是为每个进程的thread_info因如了preempt_count计数器(使用锁的时候+1,释放锁的时候-1).当值为0 的时候,内核就可以抢占.
如果内核中的进程被阻塞了,或者显示的调用schedule(),内核抢占就会显示的发生.
建议看一下linux内核设计与实现,第二版,将的就是2.6内核,非常不错哦 :)
#2
配置内核时候指定 CONFIG_PREEMPT 可以配置内核抢占。
LKD 第一版就是 2.6 内核了。
LKD 第一版就是 2.6 内核了。
#3
我以为还是协同呢,关注一下
#4
mark
#5
可以来这里下载好书:
http://www.elinux.cn
http://www.elinux.cn
#1
在2.6内核中,引入了抢占能力,现在,只要重新调度是安全的(只要没有持有锁,内核就可以进行强占),那么内核就可以在任何时间前抢占正在执行的任务.
为了支持内核抢占所做的地一处 变动就是为每个进程的thread_info因如了preempt_count计数器(使用锁的时候+1,释放锁的时候-1).当值为0 的时候,内核就可以抢占.
如果内核中的进程被阻塞了,或者显示的调用schedule(),内核抢占就会显示的发生.
建议看一下linux内核设计与实现,第二版,将的就是2.6内核,非常不错哦 :)
为了支持内核抢占所做的地一处 变动就是为每个进程的thread_info因如了preempt_count计数器(使用锁的时候+1,释放锁的时候-1).当值为0 的时候,内核就可以抢占.
如果内核中的进程被阻塞了,或者显示的调用schedule(),内核抢占就会显示的发生.
建议看一下linux内核设计与实现,第二版,将的就是2.6内核,非常不错哦 :)
#2
配置内核时候指定 CONFIG_PREEMPT 可以配置内核抢占。
LKD 第一版就是 2.6 内核了。
LKD 第一版就是 2.6 内核了。
#3
我以为还是协同呢,关注一下
#4
mark
#5
可以来这里下载好书:
http://www.elinux.cn
http://www.elinux.cn