Linux kernel 对于Linux RCU,在宽限期内,是否可能有新的写入程序更新新数据?
我是Linux新手,正在学习RCU部分。我看到手术期间有一个宽限期。我只是想知道,如果一些新的编写者想在宽限期内更新数据,是否可能?我想有两种方法:Linux kernel 对于Linux RCU,在宽限期内,是否可能有新的写入程序更新新数据?,linux-kernel,lock-free,mutual-exclusion,rcu,Linux Kernel,Lock Free,Mutual Exclusion,Rcu,我是Linux新手,正在学习RCU部分。我看到手术期间有一个宽限期。我只是想知道,如果一些新的编写者想在宽限期内更新数据,是否可能?我想有两种方法: 在宽限期内,它带有写锁 RCU可以在RCU上工作,这意味着它会在旧的RCU上创建一个新的RCU,等待新的RCU完成,然后旧的RCU进入宽限期结束 哪种方式适合Linux 我只是想知道,如果一些新的编写者想在宽限期内更新数据,有可能吗 是的,这是可能的。作者不必等待宽限期结束。此外,宽限期对于回收阶段也很重要(简单地说,在删除之后,我们等待访问数据的
rcu read\u unlock()
,然后我们可以释放数据)
除此之外,RCU支持单个更新程序和多个读卡器之间的并发性这一事实也不是RCU的问题。因此,如果您有多个更新程序,则应应用适当的锁定
RCU经常与自旋锁一起使用,以解决更新程序之间的并发性。因此,您可以在Linux内核源代码中看到一些将RCU与多个更新程序一起使用的清晰示例
有用链接:
- (包含附加链接和简单示例用法的综合文章)