自旋锁

在单处理器非抢占式内核中,自旋锁就是一条空语句,因为内核是不可抢占的
在单处理器非抢占式内核中,自旋锁就是配置内核非抢占,这样就可以实现保护资源,避免内核死锁

在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
                     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值