x86中断控制器: 绝大多数x86系统依赖于i8295A可编程中断控制器(PIC)或者i82489高级可编程中断控制器(APIC)的一个变种。 x64中断控制器: x64体系结构依赖于改进的高级可编程中断控制器(SAPIC),与APIC重要的区别是:APIC系统上的I/O APIC利用一条私有的APIC总线将中断提交给本地Apic,而SAPIC中这些中断通过I/O,和系统总线进行快速的提交,另一个区别是:APIC中,中断转送和负载均衡是由APIC总线处理的,SAPIC没有总线,所以被编入到固件中。
用!apic查看IAPIC的配置情况: lkd> !apic !ioapic显示I/O APIC(连接至设备的中断控制器部件) IRQl(中断请求级别): 虽然中断控制器实现了一层中断优先级,但windows使用自己的中断优先方案,称为IRQL(interrupt repuest level) 在一个称为处理控制区(PCR ,process control region)的数据结构以及他的扩展结构PRCB(processor control block ,处理控制块)中有一个称为IRQL的域。包含了系统每个处理器的状态信息。 lkd> !pcr SelfPcr: ffdff000 CurrentThread: 8055be40 DpcQueue: 不使用延迟IRQL的系统上,windows并没有维护IRQL域,大多数为零。 在用户模式下总是被动级别的。 |
Microsoft windows internals 学习笔记(2)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.