《Linux内核设计与实现》之中断与中断处理程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了《Linux内核设计与实现》之中断与中断处理程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含978字,纯文字阅读大概需要2分钟。
内容图文
![《Linux内核设计与实现》之中断与中断处理程序](/upload/InfoBanner/zyjiaocheng/1164/c1dcf4b5f43b4902850879c470783827.jpg)
1.中断的概念
中断本质上是一种特殊的电信号,由硬件设备发向处理器。处理器接收到中断后,会马上向操作系统反映此信号的到来,然后就由OS负责处理这些新到来的信号。
从物理学的角度看,中断是一种电信号,有硬件设备产生,并直接送入中断控制器的输入引脚上。然后再由中断控制器向处理器发送相应的信号。处理器一经检测到此信号,便中断自己的当前工作转而处理中断。伺候处理器会通知操作系统已经产生中断,这样,操作系统就可以对这个中断进行适当的处理了。
不同的设备对应的中断不同,而每个中断都通过一个唯一的数字标识。这样,操作系统才能给不同的中断提供不同的中断处理程序。这些中断值通常被称为中断请求线。
2.中断处理程序
在响应一个特定中断的时候,内核会执行一个函数,该函数叫做中断梳理程序。产生中断的每一个设备都有一个响应的中断处理程序。例如,由一个函数专门处理来自系统时钟的中断,而由另外一个函数专门处理键盘产生的中断。一个设备的中断处理程序是它设备驱动程序的一部分(设备驱动程序是用于对设备进行管理的内核代码)。
3.中断处理机制的实现
下图显示类中断从硬件到内核的路由。设备产生中断,通过总线把电信号发送给中断控制器。如果中断线是激活的,那么中断控制器就会把中断发往处理器。在大多数体系结构中,这个工作就是通过电信号给处理器的特定管脚发送一个信号。除非处理器禁止该中断,否则,处理器会立即停止它正在做的事,关闭中断系统,然后调到内存中预定义的位置执行那里的代码。这个预定义的位置是由内核设置的,是中断处理程序的入口。
在内核中,中断的旅程开始于预定义的入口点,这类似于系统调用通过预定义的异常句柄进入内核。内核调用do_IRQ()函数。do_IRQ()函数计算出中断号,然后根据中断线上是否有一个优先的处理厂恒许来做相应的处理。
4.中断控制
Linux内核提供了一组接口用于操作机器上的中断状态。这些接口为我们提供了能够禁止当前处理器的中断系统,或屏蔽掉整个机器的一条中断线的能力。
用于禁止和激活当前处理器的本地中断的语句为:
用于禁止和激活整个系统中一条特定的中断线的指令:
中断控制方法总结:
原文:http://blog.csdn.net/yao_wust/article/details/46300763
内容总结
以上是互联网集市为您收集整理的《Linux内核设计与实现》之中断与中断处理程序全部内容,希望文章能够帮你解决《Linux内核设计与实现》之中断与中断处理程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。