[Computer PubMed 408] Proceso de procesamiento de interrupciones

  1. solicitud de interrupción

Las fuentes de interrupción son dispositivos o eventos que solicitan interrupciones de la CPU, y una computadora permite múltiples fuentes de interrupción. El momento en que cada fuente de interrupción envía una solicitud de interrupción a la CPU es aleatorio.

  1. Arbitraje de respuesta a interrupciones

La prioridad de respuesta a interrupciones se refiere al orden en que la CPU responde a las solicitudes de interrupción. Cuando varias fuentes de interrupción realizan solicitudes al mismo tiempo, es necesario determinar qué fuente de interrupción responderá a la solicitud a través de la lógica de arbitraje de interrupción. El arbitraje de la respuesta a la interrupción generalmente se realiza a través de la cola de hardware.

  1. Condiciones para que la CPU responda a las interrupciones

La CPU responde a la solicitud de interrupción enviada por la fuente de interrupción bajo ciertas condiciones y, después de algunas operaciones específicas, ejecuta el programa de servicio de interrupción.

La CPU responde a las interrupciones debe cumplir las siguientes tres condiciones:

(1) La fuente de interrupción tiene una solicitud de interrupción.

(2) La CPU permite interrupciones y habilita interrupciones (las interrupciones anormales y no enmascarables no están sujetas a esta restricción).

(3) Se ha ejecutado una instrucción (la excepción no está limitada por esto), y no hay una tarea más urgente.

(La CPU verifica la solicitud de interrupción antes de que finalice la ejecución de cada instrucción y, si la hay, ingresa a la etapa de respuesta a la interrupción, también conocida como ciclo de interrupción)

  1. Proceso de respuesta a interrupciones (ciclo de interrupciones)

Después de que la CPU responde a la interrupción, después de algunas operaciones, ejecuta la rutina de servicio de interrupción.

Estas operaciones son implementadas directamente por hardware, lo llamamos instrucción implícita de interrupción. La instrucción implícita de interrupción no es una instrucción real en el sistema de instrucciones, sino una declaración virtual, que es esencialmente una serie de operaciones del hardware.

Lo que hace es lo siguiente:

(1) Desactivar las interrupciones. Garantice el progreso normal del guardado de puntos de interrupción o escenas, y evite que se vea afectado por otras interrupciones.

(2) Guarde el punto de interrupción. Se garantiza volver al programa original correctamente después de la ejecución de la rutina de servicio de interrupción. (Guardar contenido de PC y PSW).

(3) Activar la rutina de servicio de interrupción. Identifique la fuente de interrupción y envíe la dirección de entrada del programa de servicio interrumpido a la PC.

  1. Proceso de manejo de interrupciones (instrucción implícita de interrupción (1) (3) y rutina de servicio de interrupción (4) (9))

instrucción implícita de interrupción

(1) Desactivar las interrupciones.

(2) Guarde el punto de interrupción. Empuje la instrucción interrumpida en la pila.

(3) Direccionamiento de rutina de servicio de interrupción. Identifique la fuente de interrupción, determine el número de tipo de interrupción y busque la dirección de entrada del controlador de interrupción correspondiente.

Los tres pasos anteriores generalmente los completa el circuito de hardware que maneja la interrupción.

Lo siguiente generalmente lo hace el software

rutina de servicio de interrupción

La rutina de servicio de interrupción es específicamente responsable de manejar el código de interrupción (anormal) implementado por el software, es decir, el sistema operativo, y esta parte del código pertenece al código del kernel del sistema operativo. (Está bien decir que es procesado por la CPU)

(4) Guarde la escena y enmascare la palabra. Después de ingresar a la rutina de servicio de interrupción, la escena y la palabra de máscara de interrupción deben guardarse primero. La información de la escena se refiere al contenido del registro de trabajo visible para el usuario, que almacena el valor actual de la ejecución del programa hasta el punto de interrupción (completado por el Sistema operativo).

(5) Interrupción abierta. Permite responder a solicitudes de interrupción de nivel superior, lo que permite el anidamiento de interrupciones.

(6) Ejecute la rutina de servicio de interrupción. Este es el propósito de la solicitud de interrupción.

(7) Desactivar las interrupciones. Garantizado para ser ininterrumpido al restaurar palabras de contexto y máscara.

(8) Restaurar la palabra de campo y máscara.

(9) Interrupción abierta, retorno de interrupción. La última instrucción de la rutina de servicio de interrupción suele ser una instrucción de retorno de interrupción para volver al punto de interrupción del programa original para que el programa original pueda continuar ejecutándose.

El video de Wangdao es diferente del contenido del libro. El video divide el proceso de interrupción en tres etapas.
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_43382350/article/details/128389710
Recomendado
Clasificación