中断处理函数中使用自旋锁的疑问

comdoc comdoc 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
书上说“在中断处理程序中可以使用自旋锁”

那么,假设自旋锁锁定了一个临界区,而且一个进程正在持有该锁,此时发生中断,中断服务函数中又申请该自旋锁,那岂不是会造成死锁,因为中断服务函数在等待自旋锁,但是进程将永远得不到释放自旋锁的机会。

就是这点搞不清楚,求解,谢谢。
...全文

相关推荐

golang实现Redis分布式自旋锁+本地自旋锁

golang使用redis的setnx实现了一个自选锁,有key超时,同时也有我们调用redis链接时的超时。 package locker import ( context github.com/go-redis/redis runtime time ) type Lock struct { resource string value interface{} timeout time.Duration redisCli *redis.ClusterClient //这个是链接redis集群的cli,可以自行修改 } func NewRedis(red

weixin_38641339

67、内核同步:自旋锁与中断处理

本文深入探讨了Linux内核中自旋锁与中断处理的交互机制,分析了不同场景下(如顺序执行、交错执行、部分中断屏蔽等)可能出现的问题及其解决方案。通过介绍spin_lock_irq、spin_lock_irqsave等API的使用场景,帮助开发者正确选择适合的同步机制,确保内核代码的稳定性与安全性。同时,还涵盖了自旋锁在中断下半部的使用及注意事项,为内核开发者提供了实用的指导。

废话文学大师568

信号量、互斥体和自旋锁的区别

本文章是关于信号量、互斥体和自旋锁的区别。

weixin_38739101

无锁编程之自旋锁的C++实现

根据《多处理器编程的艺术》一书第七章“自旋锁与争用”编写的C++代码,演示了10种锁的实现。代码为本人学习研究所用,欢迎高手赐教。

dragonzht

深入讲解我们说的CAS自旋锁到底是什么

主要给大家介绍了关于我们说的CAS自旋锁到底是什么的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

weixin_38692631
评论 9
收藏 已收藏
分享
返回顶部
comdoc
Linux_Kernel 4,469 成员 17,458 内容