回复 #10 godbach 的帖子
呵呵,总结一下,最近很多人老问这个问题。我觉得其实跟一下源代码,很多问题还是蛮简单的 是啊源代码都开放了,再去问就不对劲了
哈哈
回复 #3 dreamice 的帖子
请教下LZsem->count--;
count有什么作用!!为什么加加..又为什么渐减!!
感觉是不是可以去掉!!!既然之前有个spinlock 那就只能有一个能进去,干嘛还用count控制
回复 #14 xiaochangfu 的帖子
count是信号量计数,当获得这个信号量以后,就要计数器减减,这样表示获取了这个信号量。而加加,则标识释放了这个信号量。你可以理解一下PV原语的操作回复 #15 dreamice 的帖子
pv就是信号量!!然后这个程序本身就是用了down,up的信号量操作,这个倒是明白..down里面有用到spinlock机制,可是spinlock里面用到count,我倒不是不明白count的用意!我不明白为什么spinlock的临界区还要用到count这样产生的效果是什么!!不用的后果又是什么!!
呵呵!!
回复 #16 xiaochangfu 的帖子
count作为资源的标识,其本身就是一个临界资源,也存在并发访问的控制问题。回复 #17 dreamice 的帖子
明白了!count本身就是临界资源!本省就是pv操作的数字!但是我以前做的那个spinlock测试,,感觉对spinlock还是一知半解!!
因为spin基于smp和抢占的up,也只能运用于内核态,好像对其测试,有点难!!
[ 本帖最后由 xiaochangfu 于 2009-11-12 14:16 编辑 ]