系统相关
首页 > 系统相关> > linux驱动编程

linux驱动编程

作者:互联网

1、自旋锁:参考博文https://blog.csdn.net/helloguoqijun/article/details/77489317

     自旋锁是一种轻量级的互斥锁,可以更高效的对互斥资源进行保护。在短期间内进行轻量级的锁定。

     和信号量、互斥锁的比较:

     缺点:请求它的线程在等待锁重新可用的期间进行自旋(特别浪费处理器时间),所以自旋锁不应该被持有时间过长。如果需要长时间锁定的话, 最好使用信号量

     优点:自旋锁是一种轻量级的互斥锁,可以更高效的对互斥资源进行保护,会关闭系统抢占或者本地中断,因此减少死锁的问题。互斥锁需要做任务切换,阻塞的情况下自旋锁的效率就远高于互斥锁。

     各API的比较: spin_lock为了防止内核的抢占死锁,spin_lock_irq为了防止内核和中断的抢占死锁,spin_lock_irqsave为了防止进入自旋状态丢掉之前的中断状态。

 

标签:linux,lock,编程,互斥,死锁,自旋,驱动,spin,轻量级
来源: https://www.cnblogs.com/mic-chen/p/16497412.html