加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 运营中心 > 交互 > 正文

深入理解RCU实现

发布时间:2016-10-29 16:06:37 所属栏目:交互 来源:站长网
导读:副标题#e# 深入理解RCU实现 ——基于 内核2.6.21 RCU实现(lvyilong316) RCU(Read-Copy Update),顾名思义就是读-拷贝修改,它是基于其原理命名的。对于被RCU保护的共享数据结构, 读者不需要获得任何锁就可以访问它,但写者在访问它时首先拷贝一个副本,然

#define rcu_read_lock() __rcu_read_lock() 
#define rcu_read_unlock() __rcu_read_unlock() 

#define __rcu_read_lock() 
do { 
    preempt_disable(); 
    __acquire(RCU); 
    rcu_read_acquire(); 
} while (0) 
#define __rcu_read_unlock() 
do { 
    rcu_read_release(); 
    __release(RCU); 
    preempt_enable(); 
} while (0) 
    其中__acquire(),rcu_read_acquire(),rcu_read_release(),__release()都是一些选择编译函数,可以忽略不可看。因此可以得知:rcu_read_lock(),rcu_read_unlock()只是禁止和启用抢占.因为在读者临界区不允许发生上下文切换

rcu_dereference()和rcu_assign_pointer()

rcu_dereference()和rcu_assign_pointer()的实现如下: 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读