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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.