Red de conocimientos turísticos - Conocimientos sobre calendario chino - Explicación detallada de las interrupciones

Explicación detallada de las interrupciones

Las interrupciones son un concepto muy importante en las computadoras y la tecnología de interrupción se utiliza sin excepción en las computadoras modernas. ¿Qué es una interrupción? Puedes dar un ejemplo de la vida diaria para ilustrar. Supongamos que estás escribiendo una carta a un amigo y suena el teléfono. En ese momento, dejaste el bolígrafo en tu mano y fuiste a contestar el teléfono. Una vez finalizada la llamada, continúa escribiendo. Este ejemplo muestra la interrupción y su proceso de procesamiento: el timbre del teléfono hace que usted suspenda temporalmente su trabajo actual y se ocupe de asuntos más urgentes (contestar el teléfono). Después de manejar los asuntos urgentes, puede volver al trabajo original. asunto. En este ejemplo, el timbre del teléfono se denomina "solicitud de interrupción" y su pausa al escribir para contestar el teléfono se denomina "respuesta de interrupción". El proceso de contestar el teléfono es "procesamiento de interrupción". está ejecutando el programa, debido a que ocurre una situación especial (o "evento"), lo que hace que la CPU suspenda el programa actual y ejecute el controlador que maneja el evento (comúnmente conocido como procesamiento de interrupción o rutina de servicio de interrupción después del servicio de interrupción). Cuando se completa la rutina, vuelve a la interrupción. Haga clic para continuar ejecutando el programa original. Este proceso se llama interrupción.

¿Por qué las computadoras usan interrupciones?

Para ilustrar este problema, demos otro ejemplo. Suponga que tiene un amigo que viene a visitarlo, pero como no sabe cuándo llegará, solo puede esperar en la puerta y no hacer nada. Si instalas un timbre en la puerta, no tienes que esperar en la puerta para hacer otros trabajos. Cuando llegue tu amigo, toca el timbre para avisarte y luego interrumpes tu trabajo para abrir la puerta, evitando así esperas. y perdiendo el tiempo. Lo mismo ocurre con las computadoras, por ejemplo, al imprimir, la CPU transfiere datos a alta velocidad, mientras que la impresora imprime a baja velocidad. Si no se utiliza la tecnología de interrupción, la CPU a menudo estará en un estado de espera. es extremadamente ineficiente. Con el modo de interrupción, la CPU puede realizar otros trabajos. Solo responderá a la solicitud de interrupción después de que se haya impreso el contenido actual en el búfer de la impresora. Interrumpe temporalmente el trabajo actual y transfiere los datos al búfer una vez completada la transferencia. , Volverá a ejecutar el programa original. Esto mejora enormemente la eficiencia del sistema informático.

¿Qué es la prioridad de interrupción?

Aún podemos dar ejemplos para ilustrar el concepto de prioridad de interrupción. En el ejemplo anterior, si el timbre suena al mismo tiempo que suena el teléfono, elegirá entre las dos solicitudes de interrupción de "contestar el teléfono" y "abrir la puerta", a cuál solicitud responder primero. Hay una cuestión de quién tiene prioridad. Si "abrir la puerta" es más importante que "contestar el teléfono" (o "abrir la puerta" tiene mayor prioridad que "contestar el teléfono"), entonces debe abrir la puerta primero, luego contestar el teléfono y luego venir. Vuelve a escribir la carta después de contestar el teléfono. Esto significa que cuando hay varias solicitudes de interrupción al mismo tiempo, se debe responder primero a la solicitud de interrupción con mayor prioridad.

Además, si en el proceso de responder a una interrupción y ejecutar el procesamiento de la interrupción, se produce un nuevo evento de interrupción y se emite una solicitud de interrupción, la forma en que se debe manejar también depende de la prioridad del evento de interrupción. . Cuando la prioridad de un nuevo evento de interrupción es mayor que la del evento de interrupción que se está procesando, el controlador de interrupciones actual se suspenderá y se transferirá para manejar el nuevo evento de interrupción. Una vez completado el procesamiento, volverá al procesamiento de interrupción original. En el ejemplo anterior, asumimos que "abrir la puerta" tiene mayor prioridad que "contestar el teléfono". Mientras escribías la carta, sonó el teléfono. Fuiste a contestar y mientras hablabas, volvió a sonar el timbre. Debido a que "abrir la puerta" tiene una alta prioridad, solo puede pedirle a la otra parte que espere, cuelgue el teléfono y abra la puerta. Después de abrir la puerta, regrese y continúe contestando el teléfono. Una vez completada la llamada, regrese y continúe escribiendo. Y si "abrir la puerta" tiene una prioridad menor que "contestar el teléfono", puede ignorar el timbre si suena durante la llamada y luego abrir la puerta una vez finalizada la llamada. Por supuesto, en la vida diaria nadie establecería un nivel de prioridad para "abrir la puerta" y "contestar el teléfono". Sin embargo, en las computadoras hay muchos eventos de interrupción y sus prioridades están especificadas; de lo contrario, todo saldrá mal. En las computadoras, la prioridad de los eventos de interrupción se organiza según la naturaleza del tiempo real del evento, la importancia y la conveniencia del procesamiento del software.

Enmascaramiento de interrupción

El enmascaramiento de interrupción también es una función muy importante. El llamado enmascaramiento de interrupción significa prohibir responder a una interrupción configurando el bit de máscara de interrupción correspondiente. El propósito de esto es garantizar que no se responda a las interrupciones durante la ejecución de algunos programas importantes para evitar retrasos y errores. Por ejemplo, cuando el sistema inicia y ejecuta el programa de inicialización, la interrupción del teclado está protegida para que el programa de inicialización pueda continuar sin problemas. En este momento, no habrá respuesta al presionar ninguna tecla.

Por supuesto, algunas interrupciones importantes no se pueden enmascarar, como reinicios, cortes de energía, errores de memoria, errores de bus y otras interrupciones que afectan el trabajo de todo el sistema. Por lo tanto, a juzgar por si las interrupciones se pueden enmascarar, se pueden dividir en dos categorías: interrupciones enmascarables e interrupciones no enmascarables.

Fuentes de interrupción

Todos los dispositivos y fallas anormales que pueden causar interrupciones o realizar solicitudes de interrupción se denominan "fuentes de interrupción".

Por lo general, existen las siguientes fuentes de interrupción:

(1) Un dispositivo externo solicita una interrupción. Después de completar sus propias operaciones, los dispositivos externos generales (como teclados, impresoras, convertidores A/D, etc.) envían una solicitud de interrupción a la CPU y requieren que la CPU la atienda.

Las interrupciones de hardware se dividen en interrupciones externas e interrupciones internas.

Las interrupciones externas generalmente se refieren a solicitudes de interrupción emitidas por periféricos de la computadora, como interrupciones del teclado, interrupciones de la impresora, interrupciones del temporizador, etc. Las interrupciones externas son interrupciones enmascarables, es decir, las solicitudes de interrupción de estos dispositivos externos se pueden enmascarar utilizando el controlador de interrupciones.

Las interrupciones internas se refieren a interrupciones causadas por errores de hardware (como cortes repentinos de energía, errores de paridad, etc.) o errores de operación (división cero, desbordamiento de operación, interrupción de un solo paso, etc.). Las interrupciones internas son interrupciones no enmascarables.

(2) Interrupción forzada por fallo. Las computadoras están equipadas con dispositivos automáticos de detección de fallas en algunas partes clave. Como desbordamiento de operación, error de lectura de memoria, falla de dispositivo externo, corte de energía y otras señales de alarma, etc. Las señales de alarma de estos dispositivos pueden interrumpir la CPU y realizar el procesamiento de interrupción correspondiente.

(3) Interrupción de solicitud de reloj en tiempo real. Cuando se encuentran control y detección de temporización en el control, a menudo se utiliza un circuito de reloj externo (programable) para controlar su intervalo de tiempo. Cuando se requiere sincronización, la CPU emite un comando para que el circuito del reloj comience a funcionar. Una vez que se alcanza el tiempo especificado, el circuito del reloj emite una solicitud de interrupción y la CPU completa el trabajo de detección y control.

(4) Interrupción del canal de datos. Las interrupciones del canal de datos también se denominan interrupciones de operación de acceso directo a la memoria (DMA), como las interrupciones de disco, unidad de cinta o CRT necesarias para intercambiar datos directamente con la memoria.

(5) El programa se interrumpe voluntariamente. La CPU ejecuta una instrucción especial (instrucción de captura) o la interrupción causada por el circuito de hardware es una interrupción voluntaria del programa. Se refiere al método de verificación utilizado cuando el usuario depura el programa, el programa se interrumpe voluntariamente para verificar los resultados intermedios o encontrar el resultado. error, como interrupción de punto de interrupción e interrupciones de un solo paso, etc.

Clasificación de interrupciones (1) Según el método de procesamiento de interrupciones, se puede dividir en interrupciones simples e interrupciones de programa. Las interrupciones simples utilizan métodos de robo de ciclos para realizar servicios de interrupción, a veces también llamados canales de datos o interrupciones de programa DMA, no roban el ciclo de la unidad central de procesamiento para el procesamiento de interrupciones, sino que suspenden la ejecución del programa actual y lo transfieren a la ejecución del mismo. interrumpir la rutina del servicio.

(2) Según la forma en que se genera la interrupción, la interrupción se puede dividir en interrupción voluntaria e interrupción forzada. Las interrupciones voluntarias son interrupciones causadas por instrucciones de captura o interrupciones de software, como las interrupciones forzadas del programa, que son interrupciones en tiempo real que ocurren aleatoriamente, como interrupciones de solicitud de dispositivos externos, interrupciones forzadas por fallas, interrupciones de solicitudes de reloj en tiempo real y datos; interrupciones del canal.

(3) Según la ubicación del evento de interrupción, las interrupciones se pueden dividir en interrupciones internas e interrupciones externas. Las interrupciones externas también se denominan interrupciones de hardware externo en tiempo real. Son causadas por señales de un determinado pin de la CPU. Las interrupciones internas también se denominan interrupciones de instrucciones de software. Se proporcionan para manejar algunas situaciones inesperadas que ocurren durante la ejecución del programa o para depurar. Interrumpir.

(4) Según la aceptación interna de las solicitudes de interrupción por parte del microprocesador, las interrupciones se pueden dividir en interrupciones enmascarables e interrupciones no enmascarables. Cualquier interrupción a la que el activador de interrupción interno del microprocesador (o activador de habilitación de interrupción) puede negarse a responder se denomina interrupción enmascarable; cualquier interrupción a la que el activador de interrupción interno del microprocesador (o activador de habilitación de interrupción) no puede negarse a responder, se denomina no-. interrupción enmascarable.

Las funciones del sistema de interrupciones Las funciones que debe tener el sistema de interrupciones se pueden atribuir al procesamiento de interrupciones y al control de interrupciones.

(1) Interrumpir el procesamiento. El procesamiento de interrupciones incluye descubrir solicitudes de interrupción, responder a solicitudes de interrupción, procesar interrupciones y devolver interrupciones.

(2) Control de interrupciones. El control de interrupciones implementa principalmente colas de prioridad de interrupciones y anidamiento de interrupciones.

Controlador de interrupciones y canal de interrupción

Debido a que cada dispositivo usa interrupciones, cada dispositivo también necesita un canal para transmitir solicitudes de interrupción.

Solo hay un pin en la CPU que recibe solicitudes de interrupción, por lo que se necesita un mecanismo para recopilar varias solicitudes de interrupción generadas por varios dispositivos y enviarlas a la CPU en orden de prioridad. Este mecanismo se llama controlador de interrupciones. El primer controlador de interrupciones era un chip integrado 8259 que podía recibir 8 señales de solicitud de interrupción, es decir, podía haber 8 canales de interrupción. La PC permite el uso de 15 canales de interrupción, por lo que se requieren dos chips 8259. Las microcomputadoras actuales todavía mantienen esta estructura, pero el chip 8259 ya no es un chip independiente, sino que se ha integrado aún más en otros chips a gran escala.

Se conectan dos 8259 en forma de cascada, es decir, la salida de un 8259 se conecta a la entrada de otro 8259. Por lo tanto, solo hay 15 canales de interrupción que realmente se pueden usar

Dado que cada dispositivo ocupa un canal de interrupción, se producirá un conflicto si dos o más dispositivos ocupan el mismo canal, lo que provocará que el dispositivo no funcione correctamente o Incluso se congela. Por lo tanto, al instalar equipos nuevos, asegúrese de seleccionar canales de interrupción que no hayan sido ocupados (reservados), de lo contrario se producirán conflictos. La selección del canal de interrupción generalmente se logra cambiando el puente en la tarjeta adaptadora. Muchas microcomputadoras no seleccionan correctamente el canal de interrupción al instalar la tarjeta de sonido o la tarjeta gráfica, lo que provoca conflictos y no funciona. Para microcomputadoras y tarjetas adaptadoras con funciones plug-and-play, los canales desocupados se pueden seleccionar automáticamente y no es necesario configurarlos.

(Para obtener más detalles, consulte el libro de texto universitario "Principios de microcomputadoras" o "Principios de composición de computadoras")

tml>