Windows硬中断的处理过程
来源:互联网 发布:纵横数据备案 编辑:程序博客网 时间:2024/05/17 02:21
键盘、打印机、磁盘等等设备的中断请求是由中断控制器(Interrupt Controller)统一控制的。中断控制器提供有限的中断请求(IRQ)数,如i8259A可编程中断控制器(Programmable Interrupt Controller, PIC)它提供了16个IRQ。我们可以通过!pic命令来查看详细的信息。
而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表是在系统初始化时生成的,其内容如下(根据硬件的实际情况会有所不同):
系统正是通过IDT找到对应的中断处理程序的。
- Windows硬中断的处理过程
- 硬中断完全处理过程
- 一个硬中断的完整处理过程(2.4.24版本)
- 中断的处理过程
- 中断的处理过程
- 中断的概念和中断处理过程
- 中断的概念和中断处理过程
- 中断的概念和中断处理过程
- wince中断的处理过程
- ARM的中断处理过程
- 键盘中断的处理过程
- 中断处理的详细过程
- 软中断和硬中断的区别
- 软中断和硬中断的区别
- 硬中断与软中断的区别
- 软中断和硬中断的区别
- 硬中断与软中断的区别
- 硬中断和软中断的区别
- 实现iOS应用内付费(In-App Purchase)全教程
- 黑马程序员——File类的使用
- Mac下好用的HTTP/HTTPS抓包工具Charles
- LeetCode[Linked List]: Reverse Linked List II
- Oracle RAC学习笔记:基本概念及入门
- Windows硬中断的处理过程
- 链式储存结构-单链表
- uva567(最短路 + floyd)
- Cocos开发中Visual Studio下HttpClient开发环境设置
- ubntu 14.04 更新源
- 梯度下降法
- 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(4)
- UESTC 方老师开橙卡
- 为什么用抽象类