RCU,Read-Copy Update,读-拷贝修改,对于被RCU保护的共享数据结构,读者不需要任何锁就可以访问而写者需要拷贝一个副本,对副本进行修改,最后用一个CallBack在合适的时机把指向原来数据的指针指向新的被修改的数据。这个时机就是所有引用该数据的CPU退出对共享数据的操作。在这个过程中,垃圾收集器负责来探测读者的信号,当所有读者发出信号不再使用被RCU访问的数据时,就调用CallBack完成最后的数据修改或释放操作。RCU主要适用读多写少的情况,比如网络设备中路由标的查询更新、设备状态标的维护。。。读者没有开销,写者的开销取决于他们之间的同步机制。RCU有个前提,就是读者在访问被RCU保护的共享数据期间不能被阻塞,也即发生读者所在CPU上下文切换,SpinLock也是如此。
Linux同步锁机制分析
最新推荐文章于 2022-07-25 17:14:57 发布