想象一下,一个设备函数持有一个自旋锁来控制对设备的访问。当锁被持有时,设备会发出一个中断,这会导致一个中断处理程序运行。中断处理程序在访问设备之前也必须获得锁。
假设中断处理程序与最初获取锁的代码在同一处理器中执行。
知道持有自旋锁会禁用相关处理器上的抢占,那么持有自旋锁的代码是否有可能在另一个处理器上执行(因为该处理器上的抢占)?(我们假设这是一台 SMP 机器)
想象一下,一个设备函数持有一个自旋锁来控制对设备的访问。当锁被持有时,设备会发出一个中断,这会导致一个中断处理程序运行。中断处理程序在访问设备之前也必须获得锁。
假设中断处理程序与最初获取锁的代码在同一处理器中执行。
知道持有自旋锁会禁用相关处理器上的抢占,那么持有自旋锁的代码是否有可能在另一个处理器上执行(因为该处理器上的抢占)?(我们假设这是一台 SMP 机器)