中断(IRQ)和计时器(timer)
----------------------------
中断(IRQ)和计时器(timer)是不是内核的标准工作组件呢?当然是的。为什么不将其
和内核的其他组件放在一起来讨论呢?因为我觉得中断和计时器比起其他的组件更特殊。
首先,这两者都是比较偏向于内核的底层,更直接的与硬件接触,也就是说他们更依赖于
CPU,比如CPU周围通过总线交互的一些外设(键盘,鼠标...)都是通过硬中断实现的。
其次,内核的其他组件基本上都要依赖于这两个组件,比如像进程管理,驱动程序开发等
等这样的内核组件都依赖这两个组件。
中断(IRQ)
-----------
两种类型的中断:硬件中断和软中断。
硬件中断(hardware interrupt):由系统自身和与之连接的外设自动产生。他们用于支
持更高效地实现设备驱动程序,也用于引起处理器自身对异常或错误的关注,这些是需要
与内核代码进行交互的。
与内核的其他部分相比,用于处理中断和系统调用相关部分的代码中,汇编和C代码交织
在一起,以解决C语言无法独立处理的一些微妙问题。在内核的中断部分中,高层代码和
底层的硬件交互代码,已经尽可能有效而干净地分隔开了。
软中断(SoftIRQ):用于有效实现内核中的延期操作。
内核中经常需要一些机制,将某些活动延迟到未来的某个时间执行,或将活动置于某个队
列(tasklet)上,在时间充裕时进行后续处理。
在linux中有一个用于中断和IRQ的通用框架,linux所支持的各种平台只负责在最低层次
上与硬件交互。所有其他功能都由通用代码提供。
硬件中断不能由处理器外部的外设直接产生,而必须借助于一个称为中断控制器的标准组
件来请求。中断外部设备会有电路连接到用于中断控制器发送中断请求的组件。中断控制
器就是一个控制电路,好了,这里涉及了电路设计的问题,不打算深入电路设计的内部,
如果你有兴趣的话,可以看看关于通用计算机体系设计,如CP
----------------------------
中断(IRQ)和计时器(timer)是不是内核的标准工作组件呢?当然是的。为什么不将其
和内核的其他组件放在一起来讨论呢?因为我觉得中断和计时器比起其他的组件更特殊。
首先,这两者都是比较偏向于内核的底层,更直接的与硬件接触,也就是说他们更依赖于
CPU,比如CPU周围通过总线交互的一些外设(键盘,鼠标...)都是通过硬中断实现的。
其次,内核的其他组件基本上都要依赖于这两个组件,比如像进程管理,驱动程序开发等
等这样的内核组件都依赖这两个组件。
中断(IRQ)
-----------
两种类型的中断:硬件中断和软中断。
硬件中断(hardware interrupt):由系统自身和与之连接的外设自动产生。他们用于支
持更高效地实现设备驱动程序,也用于引起处理器自身对异常或错误的关注,这些是需要
与内核代码进行交互的。
与内核的其他部分相比,用于处理中断和系统调用相关部分的代码中,汇编和C代码交织
在一起,以解决C语言无法独立处理的一些微妙问题。在内核的中断部分中,高层代码和
底层的硬件交互代码,已经尽可能有效而干净地分隔开了。
软中断(SoftIRQ):用于有效实现内核中的延期操作。
内核中经常需要一些机制,将某些活动延迟到未来的某个时间执行,或将活动置于某个队
列(tasklet)上,在时间充裕时进行后续处理。
在linux中有一个用于中断和IRQ的通用框架,linux所支持的各种平台只负责在最低层次
上与硬件交互。所有其他功能都由通用代码提供。
硬件中断不能由处理器外部的外设直接产生,而必须借助于一个称为中断控制器的标准组
件来请求。中断外部设备会有电路连接到用于中断控制器发送中断请求的组件。中断控制
器就是一个控制电路,好了,这里涉及了电路设计的问题,不打算深入电路设计的内部,
如果你有兴趣的话,可以看看关于通用计算机体系设计,如CP