我是Linux的新手并且正在学习RCU部分。我看到在操作过程中有一段宽限期。只是想知道一些新作家是否想在宽限期内更新数据,是否可能?我想有两种方法:
在宽限期内,它带有写锁定
RCU可以在RCU上工作,这意味着它在旧的RCU上创建一个新的RCU,等待新的RCU完成,然后旧的RCU结束宽限期。
Linux的哪种方式正确?
答案 0 :(得分:1)
只想知道某个新的编写者是否要在宽限期内更新数据,这可能吗?
是的,有可能。作家不必等待宽限期结束。另外,宽限期对于恢复阶段很重要(简单来说,移除后,我们正在等待能够访问数据的读者(移除前)完成操作使用它并退出关键部分,例如通过rcu_read_unlock()
,然后我们可以释放它)。
除了基于 RCU支持单个更新程序和多个阅读器之间的并发性 这一事实之外,RCU也不是什么问题。因此,如果您有多个更新程序,则应该应用适当的锁定。
RCU通常与自旋锁一起使用,以解决更新程序之间的并发问题。因此,您可以在Linux内核源代码中看到一些将RCU与多个更新程序一起使用的清晰示例。
有用的链接: