• RCU


    RCU看了好几遍,但是一直没有看明白,今明两天一定要攻下RCU这座大山

    RCU是Read-Copy-Update

    读的时候,该CPU上禁止抢占,也就是说这个CPU是不允许调度的【是设置了什么环境变量吗?在schedule_tick中会判断这个环境变量,然后会禁止去设置PREET的值】,也就是说这个CPU上仍然会相应中断,但是,so sorry,无论时钟中断怎么来,怎么更新我这个进程的执行时间,但是我仍然是不会让出CPU的。   

    那除了禁止抢占之外,还需要表明这个CPU目前正处于questience期呀,现在

    文档中说RCU的一套核心的思想是:1)阻止读者看到将要被销毁的数据;2)完成真正的销毁工作;、

    比如从一个链表中把一个节点给去掉,那么

    rcu的读者不需要任何的锁,不需要施加任何的原子操作、写任何的变量到内存中去,也不需要执行任何的内存屏障的操作,

    同spinlock一样,rcu并不允许读者被block住,不允许一直死循环,也不允许进程被调度出去让用别的用户态去执行。因此,一旦一个CPU被检测到没有出现上述的三种情况,那么我们就认为这个CPU已经安全地出了上述的RCU的critial area,

    实现方法是一个CPU本地的RCU的计数器

    什么叫做实时的操作系统,是说规定了一个任务的deadline,在某个时间点上一定要完成

  • 相关阅读:
    c++ 用宏代替常用的函数
    爬取网易云音乐(包括歌词和评论)
    三种常见的单例模式
    函数式编程filter和map的区别
    四种常见排序算法(快速,冒泡,插入,选择排序)
    6.微信撤回消息的获取
    5.微信拜年短信自动回复
    4.深拷贝和浅拷贝
    3.迭代器以及迭代器的作用
    2.生成器计算出斐波那契数列
  • 原文地址:https://www.cnblogs.com/honpey/p/7236943.html
Copyright © 2020-2023  润新知