比较 内核 读写锁与顺序锁, RCU
创始人
2024-04-03 00:48:19
0

读写锁与顺序锁, RCU

自旋锁读写锁范式 悲观顺序锁范式 乐观RCU 理智礼让沟通 j
哲学比较悲观,假设最坏情况, 认为读时有人写,读写冲突大比较乐观,假设最好情况,认为读时没人写。 读写冲突小。理智派。综合二者优缺点。认为读时,有人写,但是写比较理智礼让,会等待读完成。
读写冲突的读写有等待读写有等待读写无等待写,回退读无等待读,有限等待写
读时机[now, ∞)[now, ∞) after write[now, ∞) after write and retry
可无限等待
等待读期间的写完成 and retry
now
写时机
写忙等时间范围
[now, ∞)[now, ∞)now[now, grace period] 有限等待
等待写期间 [rcu_assign_pointer] grace preriod的读完成,无retry。
这里通过时序图来表达比较好。
读并发
读写优先级读=写读=写写>读读>写
副作用读回退。死锁。有优先级,就有死锁可能(优先级反转,高优先级读写的却在 低优先级的进程里,通过禁止抢占解决),高优先(写)的必须要禁止抢占,果然write_seqcount_begin 有 preempt_disable,因需写写互斥,就进一步升级为 spin_lock()死锁,高优先级(读)必须要禁止抢占。果然 rcu_read_lock 里有 preempt_disable。禁止抢占,免得进程被调度走,解决优先级反转的问题。
优化场景读并发读并发,写>读读并发,读>写
优点相比自旋锁,读并发,写独占。相比自旋锁,读并发,写独占。
无等待读写,但是读可能回退。
缺点无法保证读优先。写饥饿。频繁写,性能更差
读多写少,且要优先保证读性能!读多写少,且优先级 写>读。要优先保证写性能!
场景举例
并发读时的写性能
频繁读,写极少
写性能差。写要等待读完成。频繁读时,写很慢。保证写性能,写能无等待完成。
并发读时的写性能
频繁写
最差情况
退化为自旋锁造成频繁的读回退,性能比自旋锁还差。
readwrite_lock

write_unlock
do {
seqnum = read_seqcount_begin(&seqcount);

} while (read_seqcount_retry(&seqcount, seqnum));
rcu_read_lock (=preempt_disable)
old_ptr=rcu_dereference§ // 保存旧指针
进行读访问
rcu_read_unlock (=preempt_enable)
writeread_lock

read_unlock
write_seqcount_begin(&seqcount);

write_seqcount_end(&seqcount);
… Read Copy Update
rcu_assign_pointer(ptr, new_ptr);
synchronize_rcu()
free(old_ptr)

相关内容

热门资讯

西班牙最大的商业银行时隔十年拟...   每经记者|潘婷 每经编辑|张益铭   近日,金融监管总局批复同意西班牙桑坦德银行在深...
李稻葵:应对美国关税战中国有门... 【李稻葵:#应对美国关税战中国有门道#】7月7日,美国再度掀起贸易风暴,宣布征收日韩25%关税。在由...
男子殡仪馆抱着妻子遗像哭得悲痛... 来源:网络“老婆啊,老婆,你怎么就丢下我跟女儿走了呢!”2006年5月10日上午,福建省莆田某镇殡仪...
推进设施联通 助力物畅其流——... 转自:新华社推进市场设施高标准联通,是打破地理阻碍、加快要素流动的基础前提,也是建设全国统一大市场的...
山东大学儒高院院长王学典撰文:... 当前,人类社会面临诸多共同挑战。在此背景下,以“各美其美·美美与共——文明间关系与全球现代化”为主题...
东南沿海最大木材集散地福建漳州... 中新网漳州7月8日电 (白志斌 林根 汪秋平)福建漳州港是东南沿海最大的木材集散地。8日,漳州边检站...
香港特区政府刊宪《2025年立... 香港特区政府8日在宪报刊登《2025年立法会(权力及特权)(修订)条例草案》(以下简称条例草案)。因...
奔驰车被3名初中生盗走撞毁,4... 转自:法治日报凌晨,​一辆价值不菲的奔驰轿车失控撞向路边护栏,车头瞬间面目全非,而驾驶者竟是未满14...
山东矿机副总经理吉峰减持20万... 7月8日,山东矿机(002526)发布公告,副总经理吉峰通过集中竞价方式减持20万股,占公司总股本的...
天汽模A股股东户数增加1.04... 7月8日消息,数据显示,截至2025年6月30日,天汽模A股股东总户数为15.88万户,较上期(20...