在单处理器非抢占式内核中,自旋锁就是一条空语句,因为内核是不可抢占的
在单处理器非抢占式内核中,自旋锁就是配置内核非抢占,这样就可以实现保护资源,避免内核死锁
在单处理器非抢占式内核中,自旋锁就是配置内核非抢占,这样就可以实现保护资源,避免内核死锁
在SMP抢占式内核中,自旋锁怎么处理?难道代码自己知道发生了不同的处理器上访问这个资源,还是同一个处理器另一个请求这个资源???
在SMP抢占式内核时,拥有自旋锁的线程是不允许休眠的,这样就保证了同一个处理器上的另一个任务踢掉!!!
参考资料:http://bbs.chinaunix.net/thread-2002749-1-1.html
http://bbs.youkuaiyun.com/topics/310154112
何时使用自旋锁,何时使用信号量?
如果需要睡眠,或资源占用时间很长,则使用信号量
自旋锁要求使用时间比较短,中断上下文中不能使用信号量,必须使用自旋锁或work_queue
如果使用自旋锁的进程 防止被irq打断,要使用spin_lock_irqsave()
参考文献:http://blog.chinaunix.net/uid-25002135-id-3148161.html