我知道双核 CPU 是如何处理中断的。我想知道如何在具有多个物理处理器的板上实现中断处理。

任何中断责任是否由物理板的配置决定?每个处理器必须能够处理某些类型的中断,例如磁盘 I/O。除非有一些电路来管理中断并将其分派给适当的处理器?我的猜测是该方案必须是处理器中立的,以便任何处理器和内核都可以运行中断处理程序。

如果某个核心正在等待磁盘读取,那么当磁盘准备就绪时,该核心是否会运行中断处理程序?

有帮助吗?

解决方案

在 x86 系统上,每个 CPU 都有自己的本地 APIC(高级可编程中断控制器),这些控制器也相互连接并连接到 I/O APIC,该 I/O APIC 处理到本地 APIC 的路由设备中断。

操作系统可以对 APIC 进行编程,以确定将哪些中断路由到哪些 CPU(或让 APIC 做出决定)。

我想象多核 CPU 的每个核心都有一个本地 APIC,但老实说我对此并不确定。

请参阅这些链接了解更多详细信息:

其他提示

什么你感兴趣的是SMP处理器关系。 这里是如何成为一个优秀的文章在Linux中的处理方式。该高级可编程中断控制器(APIC)是你如何在现代系统管理这一点。基本上,默认是对大家都去处理器0,除非你有这样利用这个接口来正确设置好了的操作系统。此外,你不一定要发出一个命令,以等待一个特定中断的核心。你想少加载内核接受它。

我已经问过这个问题而回。也许它可以为您提供一些见解:)

如何在多核中断/多CPU的机器工作

我会说,这将取决于硬件制造商...

然而此链接使我相信大部分是由主处理器和/或第一核心可能处理。

另一个链路

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top