sistemas servicio rutina operativos manejo interrupción interrupciones enmascaramiento enmascarables computadoras arquitectura hardware cpu multicore interrupt cpu-architecture

hardware - operativos - rutina de servicio de interrupción



¿Cómo se manejan las interrupciones con máquinas de doble procesador? (4)

En los sistemas x86, cada CPU obtiene su propio APIC (Controlador de interrupción programable avanzado) que también está conectado entre sí y a un APIC de E / S que maneja las interrupciones del dispositivo de enrutamiento a los APIC locales.

El sistema operativo puede programar los APIC para determinar qué interrupciones se enrutan a qué CPU (o para permitir que los APIC tomen esa decisión).

Me imagino 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:

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

¿Alguna de la responsabilidad de la interrupción está determinada por la configuración de la placa física? Cada procesador debe ser capaz de manejar algunos tipos de interrupciones, como la E / S del disco. ¿A menos que haya algunos circuitos para administrar y enviar interrupciones al procesador apropiado? Mi conjetura es que el esquema debe ser neutral para el procesador, de modo que cualquier procesador y núcleo puedan ejecutar el controlador de interrupciones.

Si un núcleo está esperando en una lectura de disco, ¿será ese núcleo el que ejecute el controlador de interrupciones cuando el disco esté listo?


Lo que te interesa es la afinidad del procesador SMP. Here hay un excelente artículo sobre cómo se maneja en Linux. El Controlador de interrupción programable avanzado (APIC) es la forma en que administra esto en un sistema moderno. Básicamente, el valor predeterminado sería que todos vayan al procesador 0 a menos que tenga un sistema operativo que utilice esta interfaz para configurar las cosas correctamente. Además, no necesariamente desea que el núcleo que emitió un comando espere en una interrupción en particular. Quieres que los núcleos menos cargados lo reciban.



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

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

Otro enlace