持有代码的信号量可以被抢占,这意味着什么



我正在读《罗伯特爱情书》,对这一行有点困惑。持有代码的信号量可以被抢占是什么意思?

如果在执行关键部分中的代码时,访问用户空间应用程序所具有的同一变量时发生中断,那么用户空间应用是否可以被抢占?

如果我的上述理解是正确的,那么当用户空间应用程序处于关键部分时,除了旋转锁之外,没有其他选择可以禁用中断吗?

那么,在操作系统的上下文中,信号量的用途是什么呢?当用户应用程序处于关键部分时,中断可能随时发生,为了避免中断干预,我们需要始终使用旋转锁。

持有代码的信号量可以被抢占是什么意思
这意味着当前在其关键部分运行的进程可以被抢占,该进程持有一些用于同步的锁。理想情况下,中断具有最高优先级,所以除非您禁用该处理器核心上的中断,否则正在运行的进程可以被抢占,并且这可能在进程处于其关键部分时发生。

虽然有多个spin_lock_XXX api可以禁用中断,但您可能希望使用spin_lock_irqsave,因为它保存该内核上的中断标志,并在释放锁时恢复它们。

相关内容

最新更新