对于 Linux RCU,在宽限期内,新编写器是否可以更新新数据?



我是Linux的新手,正在学习RCU部分。我看到在操作过程中有一个宽限期。只是想知道是否有一些新编写器想要在宽限期内更新数据,这可能吗?我想有两种方法:

  1. 在宽限期内,它带有写锁定

  2. RCU 可以在 RCU 上工作,这意味着它会在旧 RCU 上创建一个新的 RCU,
  3. 等待新的 RCU 完成,然后旧 RCU 进入宽限期结束。

哪种方式适合 Linux?

只是想知道是否有一些新编写器想在宽限期内更新数据,可以吗?

是的,这是可能的。作家不必等待宽限期结束。宽限期对于回收阶段也很重要(简单来说,删除后,我们正在等待有权访问数据的读者(在我们删除之前(完成处理并退出关键部分,例如通过rcu_read_unlock(),然后我们可以释放它(。

除了基于 RCU支持单个更新程序和多个读取器之间的并发性这一事实之外,这并不是 RCU 的问题。因此,如果您有多个更新程序,则应应用适当的锁定。

RCU 通常与自旋锁一起使用,以解决更新程序之间的并发问题。因此,您可以在 Linux 内核源代码中看到一些将 RCU 与多个更新程序一起使用的清晰示例。

有用的链接:

  • 什么是RCU? --"阅读,复制, 更新"(带有附加链接和简单示例用途的综合论文(
  • RCU之旅 要求

相关内容

  • 没有找到相关文章

最新更新