百独托管7500 紫田网络超高转化播放器收cps[推荐]速盾CDN 免实名免备防屏蔽阿里云 爆款特卖9.9元封顶提升alexa、IP流量7Q5团队
【腾讯云】中小企福利专场【腾讯云】多款产品1折起高防 随时退换 好耶数据小飞国外网赚带你月入万元炎黄网络4H4G10M 99每月
香港带宽CN2/美国站群优惠中客数据中心 服务器租用联盟系统移动广告平台 中易企业专场腾讯云服务器2.5折九九数据 工信部正规资质
腾讯云新用户大礼包代金券高价收cpa注册量高价展示【腾讯云】2核2G/9.93起租服务器找45互联 随时退换阿里云 短信服务 验证秒达

[国内信息] 免费领取阿里云代金券2020元啦!新老用户同享。 [复制链接]
查看:185367 | 回复:2371

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8402
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2020-12-13 11:27:27 | 显示全部楼层 来自 中国河北衡水
Intel 早期 cpu(如 Intel386、Intel486、奔腾处理器)实现原子操作,是通过 bus lock 来实现的。这种实现的问题,是完全不相关的两个 cpu 之间,也会相互竞争总线锁,从而导致整体性能下降。
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8402
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2020-12-13 12:34:23 | 显示全部楼层 来自 中国河北衡水
x86 中,有些指令是自带 lock 语义的,比如 XCHG,更新段描述符等等;另外一些指令可以手动加上 lock 前缀来实现 lock 语义,比如 BTS、BTR、CMPXCHG 指令。
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8402
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2020-12-13 12:54:10 | 显示全部楼层 来自 中国河北衡水
在这些指令中,最核心的当属 CAS(Compare And Swap)指令了,它是实现各种锁语义的核心指令。不同于自带原子语义的 XCHG,CAS 操作要通过"lock CMPXCHG"这样的形式来实现。一般而言,原子操作的数据长度不会超过 8 个字节,也不允许同时对两个内存地址进行 CAS 操作(如果可以的话,免锁双向链表不是梦)。
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8402
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2020-12-13 13:07:42 | 显示全部楼层 来自 中国河北衡水
原子操作中另一个绕不开的话题是 ABA 问题,水平有限,就不展开讲了。简单提一个例子,在 linux 内核的 slub 实现中,用上了一个宏 cmpxchg_double,这并不是同时对两个内存地址进行 CAS 的黑魔法,而正是利用 CMPXCHG16B 指令解决 ABA 问题的宏函数,有兴趣的可以深究一把。
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8402
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2020-12-13 13:40:30 | 显示全部楼层 来自 中国河北衡水
内核中提供了各种各样的锁,自旋锁、读写锁、seq 锁、mutex、semaphore 等等,这些锁对读写者的倾向各有不同,在是否允许睡眠上也有所不同。
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8402
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2020-12-13 14:23:09 | 显示全部楼层 来自 中国河北衡水
简单来说,自旋锁和读写锁的核心都是利用原子指令来 CAS 操纵一个 32 位/64 位的值,它们都不允许睡眠,但是读写锁对于读者做了优化,允许多个读者同时读取数据,而自旋锁则对于读写操作没有什么偏向性。
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8402
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2020-12-13 15:03:03 | 显示全部楼层 来自 中国河北衡水
针对大对象原子操作的另一种方式是 COW(copy on write)。
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8402
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2020-12-13 16:26:18 | 显示全部楼层 来自 中国河北衡水
关于 COW,这里举一个 AEP 的例子。AEP 是一种存储介质,这里只需要知道它可以按字节寻址和数据在掉电后不消失即可。
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8402
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2020-12-14 10:08:29 | 显示全部楼层 来自 中国河北衡水
consumers 临时节点:记录消费者的清单,主要用于服务治理时查询消费者。
configurations 持久节点:主要保存服务治理时需要调整的服务参数。
routers:子节点为持久节点,主要用于配置服务的动态路由策略。
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8402
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2020-12-14 10:24:55 | 显示全部楼层 来自 中国河北衡水
随着服务节点的增多,如果客户端都连接选举节点,对选举节点来说需要消耗大量的 CPU 去处理网络连接和请求。但是选举节点又无法任意水平扩容,选举节点越多,事务投票过程就越长,对高并发写性能是不利的。
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

论坛客服/商务合作/投诉举报:2171544 (QQ)
落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
© 2001-2014

浙公网安备 33060302000191号

浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

  落伍法律顾问: ITlaw-庄毅雄

手机版|找回帐号|不能发帖?|Archiver|落伍者

GMT+8, 2024-11-27 15:45 , Processed in 0.068065 second(s), 26 queries , Gzip On.

返回顶部