搜索
bottom↓
回复: 5

请教在Linux驱动中:中断、信号以及中断信号之间的区别和联系

[复制链接]

出0入0汤圆

发表于 2021-3-10 11:18:31 | 显示全部楼层 |阅读模式
如题,有些概念我不是很清楚,请教各位,不胜感激。

我看的书是《Linux设备驱动开发详解:基于最新的Linux4.0内核》这本书。
书中有如下描述:
mutex_lock()和mutex_lock_interrupt()区别,前者引起的睡眠不能被信号打断,而后者可以

问题1:是否需要严格区分书中所说的中断信号中断信号这三个概念。
我的理解:这里的中断就是指硬件中断,信号就是指类似于SIGINT这样的事件,我把它理解为类似于软件意义上的中断(但并非软中断),而中断信号就是前两者的并集。不知道这样理解是否正确?

问题2:上述语句中描述的不能被信号打断,是否可以理解为可以被中断打断,但是不能被信号打断?

问题3:是否存在这样的场景:某些情景只允许被中断打断,某些情景只允许被信号打断,某些情景同时允许被中断或者信号打断?

问题4:如果不允许被中断打断,但允许被信号打断,是否硬件上已经关闭了相应中断(类似于软件上采用轮询的方式,额,我想了解其中的大概机制)?

额,由于对其中的概念缺乏理解,所以一股脑问出很多问题(我猜测很多问题可能本质上是相同的,主要是因为我没有抓住问题的本质)。所以请教各位了,再次感谢!

出0入0汤圆

发表于 2021-3-10 14:05:31 | 显示全部楼层
https://www.kernel.org/doc/htmld ... -interruptible.html

出0入0汤圆

 楼主| 发表于 2021-3-11 11:30:00 | 显示全部楼层
azeng 发表于 2021-3-10 14:05
https://www.kernel.org/doc/htmldocs/kernel-locking/API-mutex-lock-interruptible.html

感谢指教!

出0入0汤圆

发表于 2021-3-11 13:13:17 | 显示全部楼层
https://pan.baidu.com/s/1c5XkDo

出0入0汤圆

 楼主| 发表于 2021-3-12 13:56:41 | 显示全部楼层
brightchl 发表于 2021-3-11 13:13
https://pan.baidu.com/s/1c5XkDo

感谢指教。

出0入0汤圆

 楼主| 发表于 2021-3-12 13:57:29 | 显示全部楼层
我从书中找到的原话,基本解释了我的疑惑:
硬中断是外部设备对CPU的中断,软中断是中断底半部的一种处理机制,而信号则是由内核(或其他进程)对某个进程的中断。在涉及系统调用的场合,人们也常说通过软中断(例如ARM为swi)陷入内核,此时软中断的概念是由软件指令引发的中断,和我们这个地方所的softirq是两个完全不同的概念,一个是softirq,一个是soft。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2022-7-3 14:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表