立即注册
查看: 634|回复: 5

[linux技术资料] 从C源码分析Linux内核如何设计和实现中断机制

已绑定手机
发表于 2021-5-8 10:49:19 | 显示全部楼层 |阅读模式 来自 广东省深圳市
中断的基本概念:
现在来设想一个简单,但是又很常见的场景:当用户按下键盘时,Linux 内核是如何响应的呢?如果采取始终监测键盘的方法,效率就太低了,因为用户可能几分钟,甚至几小时都不会按下键盘。就算用户正在使用键盘写文章,手指的速度相对于 cpu 的速度也差了好几个数量级。

那么内核该如何响应键盘的输入,而又同时不会降低机器的整体性能呢?如果键盘在被敲击的时候,能够主动向 Linux 内核发送信号,就好办了。这样 Linux 内核就无需关心键盘,安心做自己的事就可以了,反正若是有人按下键盘,键盘会主动通知内核的。这其实就是中断机制。

Linux内核中的中断处理程序
上面我们提到,Linux 内核为了分辨中断是哪个硬件设备产生的,为每个中断都定义了独一无二的中断号,其实,内核还为每个中断都定义了中断处理程序。中断处理程序运行在中断上下文中,而不是进程上下文中,这就要求中断处理程序应尽可能简洁,以便能快速完成工作,尽快恢复中段代码的执行。

但有时需求是矛盾的,即:想中断处理程序运行的快,又想中断处理程序干得活多。例如网络设备的中断处理程序,它需要对硬件做出应答,把网络数据从硬件设备拷贝到内存,还要把数据送往合适的协议栈分析,这样的工作量显然不小,但是又要求系统快速做出响应的同时,不影响其他设备。

完整内容请下载附件查看
2021-5-8 10:48 上传
文件大小:
708.89 KB
下载次数:
11
本地下载

16RD supports Paypal , Payment is calculated at the exchange rate of the day. Unable to download please contact 18902843661 (WhatsApp OR wechat number)

关于一牛网在微软浏览器(Microsoft Edge、IE浏览器)警报通告&解决方案!(无法下载直接更换浏览器即可)

*附件为作者发布,与本站无关,如有侵权,请联系客服删除



已绑定手机
The measure of success is how we cope with disappointment
发表于 2021-5-8 13:43:13 | 显示全部楼层 来自 广东省深圳市
学习,学习……
已绑定手机
The measure of success is how we cope with disappointment
发表于 2021-5-8 14:21:23 | 显示全部楼层 来自 广东省深圳市
学习……。学习……。
已绑定手机
发表于 2023-5-3 18:32:03 | 显示全部楼层 来自 广东省深圳市
谢谢楼主分享
已绑定手机
发表于 2023-5-4 08:14:42 | 显示全部楼层 来自 上海市长宁区
学习了,感谢分享
已绑定手机
发表于 2023-5-8 07:59:59 | 显示全部楼层 来自 上海市长宁区
666666666666
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表