免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234
最近访问板块 发新帖
楼主: Godbach
打印 上一主题 下一主题

多核下锁的使用 [复制链接]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
31 [报告]
发表于 2010-11-02 15:52 |只看该作者
smalloc 兄研究的很深入啊。PF

论坛徽章:
0
32 [报告]
发表于 2010-11-02 16:02 |只看该作者
本帖最后由 raintung 于 2010-11-02 16:07 编辑

回复 30# smalloc


    使用锁的目的本来就是为了让访问共享资源的非同步访问,你如何保证在同处理器中进程和软中断的交叉访问(读写)共享资源(不会同步访问)在不使用锁的情况下?
我只是举了个例子,为何不使用spin_lock,而需要使用spin_lock_bh的原因。

spin_lock用于阻止在不同CPU上的执行单元对共享资源的同时访问以及不同进程上下文互相抢占导致的对共享资源的非同步访问,而中断失效和软中断失效却是为了阻止在同一CPU上软中断或中断对共享资源的非同步访问。

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
33 [报告]
发表于 2010-11-02 16:16 |只看该作者
回复 32# raintung


    从上一个帖子里.我就没有谈任何有实际价值的东西.仅仅是交流思想,而非技术.
我只想说明用 死锁来解释为什么加bh 这种理解方式, 只不过是一种"邪 教",
它顶多能用来解释内部实现2个摆放顺序,甚至如果自旋锁是可递归的情况下.它就没有任何存在意义
禁止BH是为了防止进程被软中断打断 才是"唯一"的理由.
以上都是扯淡.别认真

论坛徽章:
0
34 [报告]
发表于 2010-11-02 17:13 |只看该作者
回复 33# smalloc
对直接关闭软中断的,是不是让锁的粒度大了点?个人觉的可以让锁的粒度更细颗粒,关闭到某个具体类型的软中断。

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
35 [报告]
发表于 2010-11-02 18:09 |只看该作者
回复 34# raintung


    禁用/释放 带来的影响我是这么看的
1,紧急性考虑.硬件中断才有这个问题.软件中断不会丢失,该执行的迟早要执行
2,如果禁用时间不长, 则软中断延迟都是可容忍的.
3.效率. 禁用后, 进程处于中断上下文,不存在睡眠,调度的影响.处理器是充分利用的,所以没有浪费现象

多处理器下因为禁用只对本处理器影响,对以上 , 2种方式都不会带来丝毫的影响

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
36 [报告]
发表于 2010-11-02 19:53 |只看该作者
回复 31# Godbach


    比起这里几个高手来差远了.
如果觉得我深入了点,那么肯定是我闲得蛋疼...

论坛徽章:
0
37 [报告]
发表于 2010-11-04 10:14 |只看该作者
我来学习一下

论坛徽章:
0
38 [报告]
发表于 2010-11-11 21:15 |只看该作者
如果读写频率差不多,应该使用 spinlock
如果读多余写,应该使用 rwlock
如果读远远大于写,应该使用 rcu ...
platinum 发表于 2010-08-13 17:24


早期rcu的确存在这样的问题,目前已经改成排队拿票入场。

writer拿票后等已入场的reader退场,后续的reader拿票发现面前有writer,则等待,否则直接进场。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP