-1

据我所知,在中断处理程序中,不需要同步技术。中断处理程序不能同时运行。简而言之,ISR 中禁用了抢占。但是,我对 tasklet 有疑问。据我所知,tasklet 在中断上下文下运行。因此,在我看来,tasklet 函数例程下不需要自旋锁。但是,我不确定。有人可以解释一下吗?感谢您的回复。

4

2 回答 2

1

如果数据在上半部分和下半部分之间共享,则去锁定。简单的锁定规则。锁旨在保护数据而不是代码。

1. What to protect?. 
2. Why to protect? 
3. How to protect.
于 2014-04-29T23:10:06.963 回答
0

同一类型的两个 tasklet 不会同时运行。因此,没有必要保护仅在单一类型的 tasklet 中使用的数据。但是,如果数据在两个不同的 tasklet 之间共享,则必须在访问下半部分的数据之前获得一个正常的自旋锁。您不需要禁用下半部分,因为一个小任务永远不会抢占同一处理器上另一个正在运行的小任务。

于 2014-05-09T11:30:13.433 回答