文库网
首页 > 小知识

系统机制之中断分发 深入解析windows操作系统 学习笔记

2023-04-08 来源:文库网

系统机制之中断分发 深入解析windows操作系统 学习笔记

1.
硬件产生的中断往往是由I/O设备激发的,当这些设备需要服务时,它们以中断的方式通 知处理器。中断驱动的设备使操作系统可以交替地进行中心处理和I/O操作,从而最大限度地 发挥处理器的能力。线程启动一个与设备之间传输数据的I/O,然后,在该设备完成此I/O传输 的过程中,它可以执行其他有用的工作。当设备完成I/O传输以后,它中断处理器,请求服务。 定点设备、打印机、键盘、磁盘驱动器和网卡一般来说都是中断驱动的。
系统软件也可能产生中断。例如,内核可能会激发一个软件中断来触发线程分发过程,以 及异步地打断一个线程的执行。内核也可以禁止中断,以使处理器不会被中断,但是它只在 很少情况下这样做——只有在关键时刻才可以这样做,比如当处理器正在操纵中断控制器, 或者正在分发异常的时候。
内核安装了中断陷阱处理器来响应设备的中断。中断陷阱处理器或者将控制权传递给一 个负责处理该中断的外部例程(ISR),或者传递给一个响应该中断的内部内核例程。设备驱 动程序提供了ISR来处理设备中断,而内核则为其他类型的中断提供了中断处理例程。
2.硬件中断处理
在Windows所支持的硬件平台上,外部I/O中断进入到中断控制器的一根线上。该控制器 接着在某一根线上中断处理器。处理器一旦被中断,就会询问控制器以获得此中断请求(IRQ,
interrupt request )o中断控制器将该IRQ转译成一个中断号,利用该编号作为索引,在一个称为 中断分发表(IDT, interrupt dispatch table)的结构中找到一个IDT项,并且将控制权传递给恰 当的中断分发例程。在系统引导的时候,Windows会填充IDT,其中包含了指向负责处理每个 中断和异常的内核例程的指针。
Windows将硬件IRQ映射至IDT中的中断号上,同时利用IDT来为异常配置陷阱处理器。例 如,x86和x64针对页面错误的异常号(当线程企图访问虚拟内存中某个尚未定义或者不存在 的页面时就会发生这种异常)是0xe。因此,在IDT中Oxe这一项指向系统的页面错误处理 器。虽然Windows所支持的体系架构最多可允许256个IDT项,但是,一台特定的机器所能支持 的IRQ的数量却是由该机器所使用的中断控制器的具体设计决定的。
每个处理器都有单独的IDT,所以,如果合适,不同的处理器可以运行不同的ISR。例如, 在一个多处理器系统中,每个处理器都接收时钟中断,但是,只有一个处理器在响应该中断 的时候更新系统时钟。然而,所有的处理器都使用该中断来测量线程的时限(quantum),以及 当线程的时限结束时,触发重新调度的过程。类似地,在有些系统配置中,可能要求由某一个 特定的处理器来处理特定的设备中断。
3.X86中断控制器
绝大多数x86系统或者依赖于i8259A可编程中断控制器(PIC),或者依赖于i82489高级可 编程中断控制器(APIC)的某个变种;今天的计算机都包含APIC。PIC标准起源于最初的IBM PCo i8259APIC只能在单处理器系统上工作,并且只有8根中断线。然而,IBM PC体系架构额 外定义了一个PIC,称为从PIC (slave),它的中断按多路复用的方式,连接到主PIC的某一根 中断线上。这样就提供了总共15根中断线(主PIC上7根,加上从PIC上的8根,这8根中断线通 过主PIC的第8根中断线进行多路复用)。APIC和SAPIC (Streamlined APIC,稍后讨论)工作在 多处理器系统上,有256根中断线°Intel和其他公司己经定义了多处理器规范(MP Specification), 这是一种针对釆用了APIC作为中心控制的x86多处理器系统的设计标准。
为了保持与单处理 器操作系统的兼容性,以及使引导代码可以按单处理器模式来启动多处理器系统,APIC支持一种包含15个中断的PIC兼容模式,并且只将中断递交给主处理器。APIC实际上是由几个部件构成的:一个接收设备中断的I/OAPIC, 一些本地APIC,以及 一个与18259A兼容的中断控制器。本地APIC接收一条专门总线上来自I/O APIC的中断,它们 会中断与之关联的CPU;而i8259A兼容的中断控制器则负责将APIC输入转换成与PIC等价的 信号。因为系统中可以有多个I/OAPIC,所以,在主板上,I/OAPIC和处理器之间通常还有一 部分核心逻辑。这部分逻辑负责实现中断转送算法(interrupt routing algorithm),通过中断转 送算法,既可以平衡各个处理器之间的设备中断负载,也可以设法利用位置特性,将设备中 断递交给刚刚承担了前一个同样类型中断的同一个处理器。
猜你喜欢