一、啥叫锁
还是用来解决互斥的问题的
二、有哪些锁
1、自旋锁 2、睡眠锁
2.1自旋锁
用排队等待的方式解决多核CPU互斥问题,这种情况下,两个CPU都要执行一个函数,用这个自旋锁就可以让其中一个CPU静静的等待一会。可是这种方法也有不足之处,就是函数要短一些,一般不超过5行,不然等待的CPU有些浪费资源了。
有时候写的驱动函数不知道在一个CPU运行还是在两个CPU运行可咋整。
可能是在一个CPU上,那spin_lock做法就是比较狠了,直接的禁止抢占,禁止别的进程调度这个驱动函数。用preempt_disable去禁止抢占。
自旋锁应该是自己给自己弄个锁,不让人家打断,让想打断的来者原地打转。