不仔细掰扯掰扯,你都想不出spin lock能牛逼到啥地步!

spin lock家族成员丰富,我认识的大概只有spin_lock、spin_lock_irq和spin_lock_irqsave,后两种的区别只在于会先将irq状态(daif)读出来,因此就算是我认识两把spin lock吧。

我们说,一个用互斥锁保护的临界资源死锁了,可能这临界资源相关的业务会hang掉(无论内核、用户态),因为虽然临界资源相关的线程会一个一个的block在死锁上,但是同内核的其他线程如果业务不相关,是不怎么不受影响的,但是spin lock如果死锁跟互斥锁的死锁会是一样效果吗?特别是spin_lock_irq(save)。

还有 92% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥1999.00 继续阅读

推荐阅读更多精彩内容

  • 1 临界区 1.1简介 在早期计算机系统中,只有一个任务进程在执行,并不存在资源的共享与竞争。随着技术和需求的飞速...
    Fly晴天里Fly阅读 9,079评论 2 13
  • 自旋锁(spin lock)与互斥量(mutex)的比较 自旋锁是一种非阻塞锁,也就是说,如果某线程需要获取自旋锁...
    lfp901020阅读 5,477评论 0 4
  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 4,176评论 0 23
  • 文/tangsl(简书作者) 原文链接:http://www.jianshu.com/p/2b993a4b913e...
    西葫芦炒胖子阅读 3,824评论 0 5
  • 1. 什么是自旋锁 自旋锁与互斥锁有点类似,但是自旋锁不会引起调用者阻塞,如果自旋锁已经被别的执行单元保持,调用者...
    cpp加油站阅读 6,185评论 0 6