文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>死锁散记二三事

死锁散记二三事

时间:2009-06-14  来源:icymoon

题记:也许真的老了,半夜coding的质量已经退化了。。。也许还没老,因为半夜还能看出哪里死锁了...

1. 法则(待补充):
(1) 读写锁不能嵌套
(2) 读锁不能升级为写锁
(3) 当进程上下文,bh上下文,中断上下文共用临界区域时,要证只在最高优先级的情况下持有锁

2. 法则之外:
(1) 除了锁,还有别的同步方法。锁不是最高效的。
(2) 如果在循环中反复地加锁解锁,或者增减使用/引用计数时,小心地管理每一个循环出口。
(3) 在检查死锁问题中,二分printk的方法依然很有效。
(4) 2.6的高版本内核中,有spin lock的检查模块。

最近发现的几个死锁问题:
循环中逻辑较复杂地反复加锁解锁,写挂了...这个属于比较傻的问题,这里就不再详述了。

进程上下文和软中断上下文共同使用了一块临界区,进程上下文如果hold住spin lock之后,被中断打断,中断结束后在同一个核上调用了软中断,而软中断在玩命等这个倒霉的spin lock被释放,遥遥无期。。。那一个核就此不再干活。[以前与这个问题类似的一个死锁问题是proc依靠timer更新,但读取的时候是在进程上下文,加锁保护不当,挂掉。]
相关阅读 更多 +
排行榜 更多 +
涂色我贼强安卓版

涂色我贼强安卓版

休闲益智 下载
脑细胞太牛了手机版

脑细胞太牛了手机版

休闲益智 下载
球球的冒险旅途

球球的冒险旅途

休闲益智 下载