• rcu机制的简单理解


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

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

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

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

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

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

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

  • 相关阅读:
    教你如何上传项目到GitHub
    Spring Boot日志使用
    Github库名命名规范
    failed to resolve org.junit.platform
    SecureCRT 关键字高亮显示
    curl 命令
    idea中展开折叠的文件夹
    python官网打不开
    小工具下载地址汇总
    Navicat12 for Mysql激活
  • 原文地址:https://www.cnblogs.com/tongyishu/p/13255089.html
Copyright © 2020-2023  润新知