2011-05-09 60 views

回答

0

正如你所提到的,竞赛条件有很多机会,所以是的,你必须非常勤奋地锁定。您还必须小心计时,例如当您启用/禁用中断或其他硬件资源时等。您并不总是必须为这些情况使用锁,但您可能必须重新对代码进行重新排序。最后,它还影响调度,使高优先级任务的响应能力更强,从而可能对优先级较低的任务产生负面影响。

0

如果没有在SMP,确保该锁补丁需要应用:“Gaurantee spinlocks implicit barrier for !PREEMPT_COUNT”,这是在2013年四月作出

注意,每次代码运行“spin_unlock_”或“preemption_enable”的时候,抢先可能会引发。无论什么时候异常返回或中断返回都是如此。除了这些案例和类似情况之外,不应该有其他问题。内核设计保证异常和中断以严格嵌入的方式进行处理,但使用SMP多个实例可以并行运行。