0

linux内核抢占式的含义是什么,特别是对于创建设备驱动程序。我猜你需要更加勤奋地处理资源锁定,但还有什么更多的吗?

4

2 回答 2

0

正如你所提到的,竞争条件有更多的机会,所以是的,你必须非常勤奋地处理锁。您还必须注意时序,例如启用/禁用中断或其他硬件资源等。您不必总是在这些情况下使用锁,但您可能必须重新排序代码。最后,它还影响调度,使高优先级任务的响应速度更快,这反过来可能对低优先级任务产生负面影响。

于 2011-05-09T14:59:06.800 回答
0

如果不在 SMP 上,请确保需要应用此锁定补丁:“ Garantee spinlocks implicit barrier for !PREEMPT_COUNT ”,这是在 2013 年 4 月制作的。

请注意,每次代码运行“spin_unlock_”或“preemption_enable”时,都会发生抢占。每当异常返回或中断返回时都是一样的。除了这些情况等,应该没有其他问题。内核设计保证异常和中断以严格的嵌入式方式处理,尽管使用 SMP 多个实例可以并行运行。

于 2013-06-05T00:44:24.547 回答