Time: 十一月 16, 2012
Category: Kernel

1、spinlock

关于MCS Spinlock的锁释放问题补充一点,关键的问题是,A在判断自己是否是最后一个申请者和如果是的话就释放mcs_lock,这两个操作无法保证原子性(而且必须是原子才行,因为这中间如果出现新的申请者,情况就会变化),所以 才要依赖cmp_and_swap操作。

ticket spinlock和mcs_spinlock其实思路是一样的。

还有很重要的一个就是:申请了锁却忘了释放绝对是致命的

2、RCU

Leave a Comment