在ULK的第5章中,作者如下所述:
“...每个中断处理程序都与自身串行化,也就是说,它不能同时执行多个。因此,访问数据结构不需要同步原语。”
我并不完全理解为什么在具有多个核心的现代CPU上中断处理程序是“串行化”的。 我认为可能存在同一个ISR可以同时在不同的核心上运行的情况,对吗?如果是这种情况,如果您不使用自旋锁来保护数据,则可能会出现竞态条件。
因此,我的问题是,在具有多个CPU的现代系统中,对于每个将读取和编写某些数据的中断处理程序,是否始终需要自旋锁?
“...每个中断处理程序都与自身串行化,也就是说,它不能同时执行多个。因此,访问数据结构不需要同步原语。”
我并不完全理解为什么在具有多个核心的现代CPU上中断处理程序是“串行化”的。 我认为可能存在同一个ISR可以同时在不同的核心上运行的情况,对吗?如果是这种情况,如果您不使用自旋锁来保护数据,则可能会出现竞态条件。
因此,我的问题是,在具有多个CPU的现代系统中,对于每个将读取和编写某些数据的中断处理程序,是否始终需要自旋锁?