En informática , una interrupción entre procesadores ( IPI ), también conocida como interrupción de seguimiento , es un tipo especial de interrupción mediante la cual un procesador puede interrumpir a otro procesador en un sistema multiprocesador si el procesador que realiza la interrupción requiere alguna acción del otro procesador. Las acciones que se pueden solicitar incluyen:
- Vaciar las cachés de la unidad de gestión de memoria , como los búferes de traducción anticipada , en otros procesadores cuando un procesador cambia las asignaciones de memoria;
- Detenerse cuando un procesador esté apagando el sistema.
- Notifique a una CPU alternativa sobre un mal funcionamiento para la recuperación de CPU alternativa (ACR).
- Notifique al procesador que hay trabajo disponible de mayor prioridad.
- Notificar a un procesador sobre el trabajo que no se puede realizar en todos los procesadores debido a, por ejemplo,
- acceso asimétrico a los canales de E/S [ 1 ]
- características especiales en algunos procesadores [ 2 ]
Mecanismo
La opción M65MP de OS/360 utilizaba la función de Control Directo del S/360 para generar una interrupción en otro procesador; en el S/370 y sus sucesores, incluyendo z/Architecture , la instrucción PROCESADOR DE SEÑALES proporciona una interfaz más formalizada. La documentación de algunos sistemas operativos de IBM se refiere a esto como un toque de hombro.
En los ordenadores compatibles con IBM PC que utilizan el controlador de interrupciones programable avanzado (APIC), la señalización IPI se realiza a menudo mediante el APIC. Cuando una CPU desea enviar una interrupción a otra CPU, almacena el vector de interrupción y el identificador del APIC local del objetivo en el registro de comandos de interrupción (ICR) de su propio APIC local. A continuación, se envía un mensaje a través del bus APIC al APIC local del objetivo, que emite la interrupción correspondiente a su propia CPU.
Ejemplos
Windows
En un sistema multiprocesador que ejecuta Microsoft Windows , un procesador puede interrumpir a otro procesador por las siguientes razones, además de las enumeradas anteriormente: [ 3 ]
- poner en cola una interrupción DISPATCH_LEVEL para programar la ejecución de un hilo en particular;
- Punto de interrupción del depurador del kernel.
Véase también
Referencias
- ↑ "Apéndice F: Extensiones de multiprocesamiento" (PDF) . Lógica del supervisor de E/S del sistema operativo - Versión 21 - Número de programa 360S-CI-505 (PDF) . Lógica del programa. IBM . pág. 271. GY28-6616-9 . Consultado el 28 de agosto de 2022 .
- ↑ "Portal de información técnica de AMD" . docs.amd.com . Consultado el 18 de julio de 2024 .
- ↑ "Uso de interrupciones entre procesadores" . Stack Overflow . Consultado el 18 de julio de 2024 .
- ↑ Matt (28-04-2002). "Entendiendo IRQL" . Archivado del original el 14-10-2019 . Recuperado el 06-12-2014 .
Enlaces externos
- Interrupciones y excepciones
- Interrumpe
- Componentes básicos de hardware informático