Windows硬中断的处理过程
2014-11-04 19:46
204 查看
键盘、打印机、磁盘等等设备的中断请求是由中断控制器(Interrupt Controller)统一控制的。中断控制器提供有限的中断请求(IRQ)数,如i8259A可编程中断控制器(Programmable Interrupt Controller, PIC)它提供了16个IRQ。我们可以通过!pic命令来查看详细的信息。
![](http://hi.csdn.net/attachment/201108/27/0_1314459330jjQR.gif)
而i82489高级可编程中断控制器(Advanced Programmable Interrupt Controller,APIC)提供了256个IRQ。
虽然中断控制器本身提供了中断级别,但是Windows还是实现了它自己的中断优先级方案,称为中断请求级别(Interrupt Request Levels,IRQLs)。在不同的体系结构下,Windows内核所提供的IRQLs的数目是不同的,x86下提供0到31一共32个请求级别,而x64和IA64下则提供0到15一共16个级别。Windows的硬件抽象层(HAL)负责把硬件中断号映射到IRQLs上。
每一个CUP都有一个IRQL值,它随着操作系统内核模式下代码的执行而改变。这个IRQL值决定了哪一些中断能被响应,哪一些中断不能被响应(那些IRQL值大于当前CPU的IRQL值的中断能被响应,那些IRQL值小于或等于当前CPU的IRQL值的中断不能被响应)。
当中断控制器的引线上收到中断信号,它将打断CPU;这时,CPU将向中断控制器询问IRQ号;中断控制器将IRQ号转换成中断号(Interrupt Number),使用这个中断号作为中断分发表(Interrupt DIspatch Table,IDT)的索引,从而可以找到对应的中断处理程序,并将CPU的控制权交给该中断处理程序。
IDT表是在系统初始化时生成的,其内容如下(根据硬件的实际情况会有所不同):
![](http://hi.csdn.net/attachment/201108/27/0_13144622529H50.gif)
系统正是通过IDT找到对应的中断处理程序的。
![](http://hi.csdn.net/attachment/201108/27/0_1314459330jjQR.gif)
而i82489高级可编程中断控制器(Advanced Programmable Interrupt Controller,APIC)提供了256个IRQ。
虽然中断控制器本身提供了中断级别,但是Windows还是实现了它自己的中断优先级方案,称为中断请求级别(Interrupt Request Levels,IRQLs)。在不同的体系结构下,Windows内核所提供的IRQLs的数目是不同的,x86下提供0到31一共32个请求级别,而x64和IA64下则提供0到15一共16个级别。Windows的硬件抽象层(HAL)负责把硬件中断号映射到IRQLs上。
每一个CUP都有一个IRQL值,它随着操作系统内核模式下代码的执行而改变。这个IRQL值决定了哪一些中断能被响应,哪一些中断不能被响应(那些IRQL值大于当前CPU的IRQL值的中断能被响应,那些IRQL值小于或等于当前CPU的IRQL值的中断不能被响应)。
当中断控制器的引线上收到中断信号,它将打断CPU;这时,CPU将向中断控制器询问IRQ号;中断控制器将IRQ号转换成中断号(Interrupt Number),使用这个中断号作为中断分发表(Interrupt DIspatch Table,IDT)的索引,从而可以找到对应的中断处理程序,并将CPU的控制权交给该中断处理程序。
IDT表是在系统初始化时生成的,其内容如下(根据硬件的实际情况会有所不同):
![](http://hi.csdn.net/attachment/201108/27/0_13144622529H50.gif)
系统正是通过IDT找到对应的中断处理程序的。
相关文章推荐
- Windows/Linux/Solaris 软中断处理机制
- WinCE中中断的处理过程(驱动开发人员角度)
- Realview MDK中编译器对中断处理的过程详解
- WinCE中中断的处理过程(驱动开发人员角度)
- ARM中断处理过程
- WINDOWS下对音频的处理过程
- Windows CE 6.0中断处理过程(转载)
- AT91SAM9261中断处理过程解析
- Windows 2000/XP 系统对U盘的处理过程入手,逆向彻底消除U盘使用痕迹
- 如何接受消息,中断正在处理的过程
- 处理Windows 95的长文件名中断详解
- ARM Linux外部中断处理过程
- XPE USB 2.0启动技术,中断处理过程
- WINDOWS下对音频的处理过程
- 2410 中断过程处理分析
- Windows/Linux/Solaris 软中断处理机制
- 【转载】WinCE中中断的处理过程(驱动开发人员角度)
- ucOS-II基于ARM920T的中断处理过程
- 操作系统学习笔记(37)--中断处理过程
- WINDOWS下对音频的处理过程(转)