上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.3.3 读-复制-更新(Read-Copy-Update,RCU)
RCU是Linux中提供的最新互斥机制,这种锁定机制在以下特定的条件下执行效率非常高。
● 相对于只读锁的要求,要求读-写锁的次数非常少。
● 持有锁的代码是以原子方式执行,绝不会休眠。
● 被锁保护的数据结构是通过指针访问的。
第一个条件涉及的是执行效率,其他两个条件是RCU工作原理的基础。如果第一个条件不满足,在需要使用锁定机制时,更好的方式就是使用读-写spin lock。当数据需要修改时,写线程获取一个数据的拷贝,修改拷贝,随后将相关的指针改到新版本的数据结构上,当内核确定不再有对旧版本数据的引用时,旧数据就可以释放了。