双处理器机器如何处理中断?
-
11-09-2019 - |
题
我知道双核 CPU 是如何处理中断的。我想知道如何在具有多个物理处理器的板上实现中断处理。
任何中断责任是否由物理板的配置决定?每个处理器必须能够处理某些类型的中断,例如磁盘 I/O。除非有一些电路来管理中断并将其分派给适当的处理器?我的猜测是该方案必须是处理器中立的,以便任何处理器和内核都可以运行中断处理程序。
如果某个核心正在等待磁盘读取,那么当磁盘准备就绪时,该核心是否会运行中断处理程序?
解决方案
在 x86 系统上,每个 CPU 都有自己的本地 APIC(高级可编程中断控制器),这些控制器也相互连接并连接到 I/O APIC,该 I/O APIC 处理到本地 APIC 的路由设备中断。
操作系统可以对 APIC 进行编程,以确定将哪些中断路由到哪些 CPU(或让 APIC 做出决定)。
我想象多核 CPU 的每个核心都有一个本地 APIC,但老实说我对此并不确定。
请参阅这些链接了解更多详细信息:
其他提示
什么你感兴趣的是SMP处理器关系。 这里是如何成为一个优秀的文章在Linux中的处理方式。该高级可编程中断控制器(APIC)是你如何在现代系统管理这一点。基本上,默认是对大家都去处理器0,除非你有这样利用这个接口来正确设置好了的操作系统。此外,你不一定要发出一个命令,以等待一个特定中断的核心。你想少加载内核接受它。
我已经问过这个问题而回。也许它可以为您提供一些见解:)
不隶属于 StackOverflow