Pregunta

Tengo una idea de cómo se manejan las interrupciones por una CPU de doble núcleo. Me preguntaba acerca de cómo manejo de interrupciones se implementa en un tablero con más de un procesador físico.

es cualquier parte de la responsabilidad de interrupción determinada por la configuración de la junta física? Cada procesador debe ser capaz de manejar algunos tipos de interrupciones, como disco I / O. A menos que haya algunos circuitos para gestionar las interrupciones y de despacho al procesador apropiado? Mi conjetura es que el esquema debe ser neutra procesador, por lo que cualquier procesador y núcleo puede ejecutar el manejador de interrupciones.

Si un núcleo está a la espera de una lectura de disco, habrá que ser el núcleo de uno para ejecutar el controlador de interrupción cuando el disco está listo?

¿Fue útil?

Solución

En los sistemas x86 cada CPU tiene su propio APIC local (Advanced Programmable Interrupt Controller), que también están conectados entre sí y a un APIC I / O que se encarga de dispositivo de encaminamiento interrumpe para los APIC locales.

El sistema operativo puede programar el APIC para determinar que se interrumpe la enrutados a las CPU (o dejar que los APIC tomar esa decisión).

Me imaginar que una CPU de varios núcleos tendría un APIC local para cada núcleo, pero sinceramente no estoy seguro de eso.

Vea estos enlaces para más detalles:

Otros consejos

Lo que le interesa es la afinidad del procesador SMP. Aquí es un excelente artículo acerca de cómo se se maneja en Linux. El avanzado controlador de interrupción programable (APIC) es cómo manejar esto en un sistema moderno. Básicamente, el defecto sería la de todo ir al procesador de 0 a menos que tenía un sistema operativo que utiliza esta interfaz para establecer las cosas correctamente. Además, no necesariamente quiere que el núcleo emite una orden de esperar en una interrupción en particular. Desea que los núcleos de menos cargado para recibirlo.

Ya hice esta pregunta hace un tiempo. Tal vez se le puede ofrecer una idea:)

cómo las interrupciones en multinúcleo / máquinas funcionan multicpu

Yo diría que dependería del fabricante de hardware ...

Sin embargo este enlace me hace creer que la mayoría son probablemente manejada por el procesador principal y / o el primer núcleo.

Otro vínculo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top