我知道双核CPU如何处理中断。我想知道如何在具有多个物理处理器的电路板上实现中断处理。
是否有任何中断责任由物理板的配置决定?每个处理器必须能够处理某些类型的中断,如磁盘I / O.除非有一些电路来管理和分配适当的处理器中断?我的猜测是该方案必须是处理器中立的,因此任何处理器和内核都可以运行中断处理程序。
如果核心正在等待磁盘读取,那么当磁盘准备就绪时,该核心是否会运行中断处理程序?
答案 0 :(得分:7)
在x86系统上,每个CPU都有自己的本地APIC(高级可编程中断控制器),它们也相互连接,并连接到I / O APIC,处理路由设备中断到本地APIC。
操作系统可以对APIC进行编程,以确定哪些中断被路由到哪些CPU(或让APIC做出决定)。
我认为多核CPU会为每个核心配备一个本地APIC,但老实说我不确定。
有关详细信息,请参阅以下链接:
答案 1 :(得分:3)
您感兴趣的是SMP Processor Affinity。 Here是一篇关于如何在Linux中处理它的优秀文章。 Advanced Programmable Interrupt Controller (APIC)是你在现代系统中管理它的方式。基本上,除非您有一个使用此接口正确设置的操作系统,否则默认情况下将全部转到处理器0。此外,您不一定希望发出命令的核心等待特定中断。您希望负载较少的核心接收它。
答案 2 :(得分:1)
我早就回答了这个问题。也许它可以为你提供一些见解:))
答案 3 :(得分:0)