Windows系统结构的中断(1)
来源:互联网 发布:闪电seo 编辑:程序博客网 时间:2024/05/22 03:10
中断:异步事件(可以在任何时候发生),且与处理器当前正在执行的任务毫无关系。主要由I/O设备、处理器时钟、定时器产生,可启用或禁用。
异常:同步事件,一个特殊指令执行的结果。
陷阱:当异常或中断发生时,处理器捕捉到一个执行线程,并且将控制权转移到操作系统中某一固定地址处。在Windows中,处理器会将控制权转给陷阱处理器(指某个特定的中断或异常相关联的函数)。
硬件中断处理:在支持Windows的硬件平台上,I/O中断进入到中断控制器的某根线上,从而中断处理器。处理器一旦被中断,就会询问控制器获得中断请求(IRQ)。中断控制器将该IRQ译成中断号,利用该编号作为索引,在中断分发表(IDT)中找到对应的IDT项,并且将控制权传递给中断分发例程。(在系统引导的时候,Windows会填充IDT,其中包含了指向负责处理每个中断和异常的例程的指针)。总之,Windows将硬件的IRQ映射到IDT中的中断号上,利用IDT来配置陷阱处理器(Windows体系架构最多允许256个IDT项,但是一台特定的机器能支持的IRQ数量由该机器所使用的中断控制器的具体设计决定)。在一个多处理器系统中,每个处理器都会接收到中断时钟,但是只有一个处理器在响应该中断的时候更新系统时钟。所有的处理器都使用该中断来测量线程的时限,以及当线程的时限结束时,触发重新调度的过程。
内核为软件中断定义了一组标准的中断请求级别(IRQL),硬件抽象层(HAL)则将硬件中断号映射为IRQL。中断是按照优先级处理的,高优先级的中断会抢占低优先级的中断的执行权。当抢占发生时,处理器会把被中断的线程的状态保存起来,接着调用与该中断相关的陷阱分发器,提升IRQL,然后调用该中断的服务例程。在服务例程执行完后,陷阱分发器再降低处理器的IRQL,回到中断发生前的级别,然后装入保存的机器状态。被中断的线程从原来的地方恢复运行。如果中断源的IRQL等于或低于当前的级别,则会被屏蔽,直到有一个正在执行的线程降低IRQL为止。
IRQL被保存在处理器控制区(PCR)和处理器控制块(PRCB)两个地方。PCR和PRCB包含了系统中每个处理器的状态信息,如当前的IRQL、指向硬件的IDT指针、当前正在运行的线程、接下来要选择运行的线程。内核和HAL利用这些信息来完成各种与系统或机器相关的动作。
Windows并没有从硬件上实现IRQL的概念,那么它是如何决定一个中断分配哪个IRQL呢?在Windows中,一个被称为总线驱动程序的设备驱动程序用以确定它的总线上出现了哪些设备,以及哪些中断可以分配给每一个设备。总线驱动程序将这些信息告诉即插即用管理器,后者在考虑所有其他设备的可接受的中断分配方案以后,确定为每个设备分配哪个中断。然后,即插即用管理器调用即插即用中断仲裁者,将中断映射到对应的IRQL(非ACPI系统上使用根仲裁者,在ACPI兼容的系统上,有自己的仲裁者)。
- Windows系统结构的中断(1)
- 中断系统的硬件结构
- LINUX系统中断处理结构及中断函数的实现
- 系统结构中的中断
- 系统结构中的中断
- KVM 中断系统结构关系
- 十.ARM裸机学习之中断系统1(S5PV210的中断系统详解)
- 计算机的中断系统(包含DOS时代和Windows/Linux时代)
- Windows系统的线程调度与软件中断分发
- 解决kvm虚拟机windows系统间歇性网络中断的问题
- Windows Embedded CE 中断结构分析
- Windows Embedded CE 中断结构分析
- Windows Embedded CE 中断结构分析
- Windows系统文件结构
- windows 系统总体结构
- Windows系统文件结构
- 51单片机的中断系统(一)
- 51单片机的中断系统(二)
- GNU ERE正则表达式实现方案
- HDU 2120 Ice_cream's world I
- JAVA学习总结(1)
- hibernate中cascade和inverse区别
- 使用JAVA SACLA 开发 Spark SQL DataFrame IMF内部课程
- Windows系统结构的中断(1)
- haproxy redirect prefix
- ZooKeeper系列之三:ZooKeeper的安装
- 你还在用strptime来解析日期时间格式吗?Out了吧
- Spring文档学习--异常处理(Handling exceptions)以Shiro为例
- HDU_ACM_A+B for Input-Output Practice (I)
- grep命令
- 网页层叠样式表(html+css)
- 第三周第一项目——个人所得税计算器