您的位置:首页 > 其它

个人理解,中断上半部,下半部,硬中断,软中断

2016-11-11 13:09 239 查看
中断上半部分与中断下半部分对比

在中断处理程序中,既想让程序运行的快,又想让程序完成的工作量多,这两个目的有抵触。

鉴于这两个目的不可调和的矛盾,中断处理可以分为两部分:

中断处理工作,例如对接收中断进行中断或复位硬件,这些工作都在所有中断被禁止的情况下完成。可以稍后完成的工作推迟到下半部,在合适的情况下执行下半部分中断。

example;

当网卡接收流入网络的数据包时,需要通知内核数据包到了,网卡需要立即完成这件事,从而优化网络的吞吐量和传输周期,以避免超时。因此网卡立即发出中断,通知内核这里有最新的数据包。内核通过执行网卡已注册的中断处理程序作出应答。中断开始运行,应答硬件,复制最新的网络数据包到内存,然后读取网卡更多的数据包,这些都是重要的、紧迫的、又与硬件相关的的工作。处理和操作其他数据包的其他工作在随后的下半部分进行。

中断下半部

下半部分执行的任务是执行与中断处理密切相关,但中断处理程序本身不执行的工作。和上半部分只能通过中断处理程序实现不同,下半部分可以通过多种机制实现

一般硬中断基本为中断的上半部分,软中断和tasklet是中断的下半部分,将上半部分没有实现完的处理继续执行。

中断:

中断使得硬件得以和处理器进行通讯,中断是一种电信号,由硬件设备生成,并且直接送到中断控制器的输入引脚上,然后再由中断控制器向处理器发出相应的信号。处理器检测到此信号,便中断自己当前工作进行适当的处理。处理器便会通知操作系统已经产生中断,这样,操作系统就可以对这个中断进行适当的处理了。不同的设备对应的中断不同,而每个中断都通过一个唯一的数字标识。

因此,来自键盘的中断就有别于来自硬盘的中断,从而使得操作系统能够对中断进行区分,并知道哪个硬件设备产生了哪个中断。这样操作系统才能给中断提供不同的处理程序。















内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: