Articulo de referencia

Interrupción entre procesadores

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 procesa...

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,

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 ]

  1. poner en cola una interrupción DISPATCH_LEVEL para programar la ejecución de un hilo en particular;
  2. Punto de interrupción del depurador del kernel.

A los IPI se les asigna un IRQL de 29. [ 4 ]

Véase también

Referencias

  1. "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 .
  2. "Portal de información técnica de AMD" . docs.amd.com . Consultado el 18 de julio de 2024 .
  3. "Uso de interrupciones entre procesadores" . Stack Overflow . Consultado el 18 de julio de 2024 .
  4. Matt (28-04-2002). "Entendiendo IRQL" . Archivado del original el 14-10-2019 . Recuperado el 06-12-2014 .
  • Interrupciones y excepciones