[英]How are interrupts handled by dual processor machines?
我知道雙核CPU如何處理中斷。 我想知道如何在具有多個物理處理器的電路板上實現中斷處理。
是否有任何中斷責任由物理板的配置決定? 每個處理器必須能夠處理某些類型的中斷,如磁盤I / O. 除非有一些電路來管理和分配適當的處理器中斷? 我的猜測是該方案必須是處理器中立的,因此任何處理器和內核都可以運行中斷處理程序。
如果核心正在等待磁盤讀取,那么當磁盤准備就緒時,該核心是否會運行中斷處理程序?
在x86系統上,每個CPU都有自己的本地APIC(高級可編程中斷控制器),它們也相互連接,並連接到處理到本地APIC的路由設備中斷的I / O APIC。
操作系統可以對APIC進行編程,以確定哪些中斷被路由到哪些CPU(或讓APIC做出決定)。
我想多核CPU會為每個核心配備一個本地APIC,但老實說我不確定。
有關詳細信息,請參閱以下鏈接
您感興趣的是SMP Processor Affinity。 這是一篇關於如何在Linux中處理它的優秀文章。 高級可編程中斷控制器(APIC)是您在現代系統中管理它的方式。 基本上,除非您有一個使用此接口正確設置的操作系統,否則默認情況下將全部轉到處理器0。 此外,您不一定希望發出命令的核心等待特定中斷。 您希望負載較少的核心接收它。
我已經回答過這個問題了。 也許它可以為你提供一些見解:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.