码迷,mamicode.com
首页 > 其他好文 > 详细

rcu机制的简单理解

时间:2020-07-06 15:58:11      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:如何   mil   com   microsoft   period   mamicode   替换   对象   图片   

RCU的核心理念是读者访问的同时,写者可以更新访问对象的副本,但写者需要等待所有已存在读者完成访问之后,才能更新老对象。

这个过程实现的关键和难点就在于如何判断所有的读者已经完成访问,通常把写者开始更新,到所有已存在读者完成访问的这段时间叫做宽限期(Grace Period)

内核中实现宽限期等待的函数是synchronize_rcu(),这个函数是rcu的核心,用来等待已存在读者的全部退出, 由写者调用

技术图片

图中每个矩形代表一个读线程,t2~t3时段为宽限期,假设写线程从t2时刻开始对副本进行更新

Reader1在完限期开始之前已经完成读操作,无需考虑;

Reader2、Reader3、Reader4在进入宽限期之前已经进行读操作,所以写操作必须在Reader3完成之后(即t3时刻,所有的已存在读者均已完成)才能进行副本替换的动作;

Reader5、Reader6在宽限期开始之后才进行的读操作,无需考虑;

rcu机制的简单理解

标签:如何   mil   com   microsoft   period   mamicode   替换   对象   图片   

原文地址:https://www.cnblogs.com/tongyishu/p/13255089.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!