个人理解,中断上半部,下半部,硬中断,软中断
2016-11-11 13:09
239 查看
中断上半部分与中断下半部分对比
在中断处理程序中,既想让程序运行的快,又想让程序完成的工作量多,这两个目的有抵触。
鉴于这两个目的不可调和的矛盾,中断处理可以分为两部分:
中断处理工作,例如对接收中断进行中断或复位硬件,这些工作都在所有中断被禁止的情况下完成。可以稍后完成的工作推迟到下半部,在合适的情况下执行下半部分中断。
example;
当网卡接收流入网络的数据包时,需要通知内核数据包到了,网卡需要立即完成这件事,从而优化网络的吞吐量和传输周期,以避免超时。因此网卡立即发出中断,通知内核这里有最新的数据包。内核通过执行网卡已注册的中断处理程序作出应答。中断开始运行,应答硬件,复制最新的网络数据包到内存,然后读取网卡更多的数据包,这些都是重要的、紧迫的、又与硬件相关的的工作。处理和操作其他数据包的其他工作在随后的下半部分进行。
中断下半部
下半部分执行的任务是执行与中断处理密切相关,但中断处理程序本身不执行的工作。和上半部分只能通过中断处理程序实现不同,下半部分可以通过多种机制实现
一般硬中断基本为中断的上半部分,软中断和tasklet是中断的下半部分,将上半部分没有实现完的处理继续执行。
中断:
中断使得硬件得以和处理器进行通讯,中断是一种电信号,由硬件设备生成,并且直接送到中断控制器的输入引脚上,然后再由中断控制器向处理器发出相应的信号。处理器检测到此信号,便中断自己当前工作进行适当的处理。处理器便会通知操作系统已经产生中断,这样,操作系统就可以对这个中断进行适当的处理了。不同的设备对应的中断不同,而每个中断都通过一个唯一的数字标识。
因此,来自键盘的中断就有别于来自硬盘的中断,从而使得操作系统能够对中断进行区分,并知道哪个硬件设备产生了哪个中断。这样操作系统才能给中断提供不同的处理程序。
在中断处理程序中,既想让程序运行的快,又想让程序完成的工作量多,这两个目的有抵触。
鉴于这两个目的不可调和的矛盾,中断处理可以分为两部分:
中断处理工作,例如对接收中断进行中断或复位硬件,这些工作都在所有中断被禁止的情况下完成。可以稍后完成的工作推迟到下半部,在合适的情况下执行下半部分中断。
example;
当网卡接收流入网络的数据包时,需要通知内核数据包到了,网卡需要立即完成这件事,从而优化网络的吞吐量和传输周期,以避免超时。因此网卡立即发出中断,通知内核这里有最新的数据包。内核通过执行网卡已注册的中断处理程序作出应答。中断开始运行,应答硬件,复制最新的网络数据包到内存,然后读取网卡更多的数据包,这些都是重要的、紧迫的、又与硬件相关的的工作。处理和操作其他数据包的其他工作在随后的下半部分进行。
中断下半部
下半部分执行的任务是执行与中断处理密切相关,但中断处理程序本身不执行的工作。和上半部分只能通过中断处理程序实现不同,下半部分可以通过多种机制实现
一般硬中断基本为中断的上半部分,软中断和tasklet是中断的下半部分,将上半部分没有实现完的处理继续执行。
中断:
中断使得硬件得以和处理器进行通讯,中断是一种电信号,由硬件设备生成,并且直接送到中断控制器的输入引脚上,然后再由中断控制器向处理器发出相应的信号。处理器检测到此信号,便中断自己当前工作进行适当的处理。处理器便会通知操作系统已经产生中断,这样,操作系统就可以对这个中断进行适当的处理了。不同的设备对应的中断不同,而每个中断都通过一个唯一的数字标识。
因此,来自键盘的中断就有别于来自硬盘的中断,从而使得操作系统能够对中断进行区分,并知道哪个硬件设备产生了哪个中断。这样操作系统才能给中断提供不同的处理程序。
相关文章推荐
- 个人学习笔记---软中断(下半部)和软件中断(系统调用)的区别
- 个人学习笔记--linux中断下半部之软中断
- 如何理解中断的上半部和下半部
- 中断下半部分析之软中断softirq
- Linux内核源代码情景分析-中断下半部(软中断)
- 外部中断和内部中断 硬中断 软中断 中断下半部
- 中断下半部机制 - 软中断及tasklet
- Linux内核-中断机制个人理解
- 深入理解Linux内核个人小结4---中断和异常
- Linux内核提供了三种不同形式的中断底半部实现机制:软中断、tasklet和工作队列。
- 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】中断服务下半部之老大-软中断softirq
- 个人对“进程上下文”和“中断上下文”的理解
- linux中断下半部实现机制之软中断的实现
- PHP变量存储的一些个人理解
- maven 的基本配置及个人理解
- 工厂模式个人理解--JAVA
- 把握linux内核设计思想(三):下半部机制之软中断
- 我的mqtt协议和emqttd开源项目个人理解(12) - Hook使用和连接Kafka发送消息,使用ekaf库
- 关于51单片机学习中计数器/定时器中断的理解
- 个人对背包问题的二进制优化问题的理解