在ULK的第5章中,作者声明如下:



我不太明白为什么在具有多核的现代CPU上将中断处理程序“序列化”。我在想,一个相同的ISR可以同时在不同的内核上运行,对吗?在这种情况下,如果您不使用自旋锁来保护数据,则可能会导致竞争。

所以我的问题是,在具有多CPU的现代系统上,对于要编写的每个要读取和写入一些数据的中断处理程序,是否总是需要自旋锁?

最佳答案

在执行中断处理程序时,内核会在中断 Controller 处显式禁用该特定中断行,因此一个中断处理程序不能同时执行一次以上。 (不过,其他中断的处理程序可以并发运行。)

关于c - 每个中断处理程序都需要自旋锁吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18421494/

10-15 09:31