Frage

Ich habe eine Vorstellung davon, wie Interrupts durch einen Dual-Core-CPU verarbeitet werden. Ich habe mich gefragt, wie Interrupt-Behandlung auf einem Brett mit mehr als einem physischen Prozessor implementiert ist.

Ist eine der Interrupt-Verantwortung durch die physikalische Board Konfiguration bestimmt? Jeder Prozessor muss in der Lage sein, einige Arten von Interrupts zu handhaben, wie Disk-I / O. Es sei denn, es gibt einige Schaltungen zu verwalten und Versand Interrupts an den entsprechenden Prozessor? Meine Vermutung ist, dass die Regelung Prozessor neutral sein muss, so dass jeder Prozessor und Kern die Interrupt-Handler ausgeführt werden können.

Wenn ein Kern auf einem Datenträger Lese wartet, wird dieser Kern derjenige sein, der Interrupt-Handler ausgeführt werden, wenn die Platte fertig ist?

War es hilfreich?

Lösung

Auf x86-Systemen jede CPU einen eigenen lokalen APIC (Advanced Programmable Interrupt Controller), die miteinander und mit einem I / O APIC sind auch die Vorrichtung an der lokalen APIC unterbricht das Routing verdrahtet wird.

Das Betriebssystem kann die APIC programmiert werden, um zu bestimmen, welche bekommen Interrupts geroutet die CPUs (oder die APIC läßt diese Entscheidung treffen).

Ich stelle mir vor, dass ein Multi-Core-CPU einen lokalen APIC für jeden Kern haben würde, aber ich bin ehrlich gesagt nicht sicher, dass.

Sehen Sie diese Links für weitere Informationen:

Andere Tipps

Was Sie Interesse an ist SMP Prozessoraffinität. Hier ist ein ausgezeichneter Artikel darüber, wie es wird in Linux behandelt. Die Advanced Programmable Interrupt Controller (APIC) ist, wie Sie dies in einem modernen System zu verwalten. Grundsätzlich wäre der Standard für alle an dem Prozessor gehen 0, wenn Sie ein Betriebssystem hatten, die diese Schnittstelle verwendet, um die Dinge richtig eingestellt werden. Auch Sie müssen nicht den Kern wollen, die einen Befehl ausgegeben, um auf einem bestimmten Interrupt zu warten. Sie wollen, dass die weniger geladenen Kerne, sie zu empfangen.

Ich fragte diese Frage schon eine Weile zurück. Vielleicht kann es Ihnen einen kleinen Einblick bieten:)

wie Interrupts in Multi-Core / MultiCPU Maschinen arbeiten

Ich würde sagen, dass es auf dem Hardware-Hersteller abhängen würde ...

Allerdings diesen Link macht ich glaube, höchstwahrscheinlich durch den primären Prozessor und / oder ersten Kern behandelt werden.

anderen Link

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top