Diferencia entre interrupción y trampa

Diferencia entre interrupción y trampa
Diferencia entre interrupción y trampa

Video: Diferencia entre interrupción y trampa

Video: Diferencia entre interrupción y trampa
Video: 🔬Diferencias entre Ciencia y Tecnología🚀 con EJEMPLOS [Fácil y Rápido] | BIOLOGÍA | FÍSICA | QUÍMICA 2024, Mes de julio
Anonim

Interrupción contra trampa

En cualquier computadora, durante la ejecución normal de un programa, puede haber eventos que hagan que la CPU se detenga temporalmente. Eventos como estos se llaman interrupciones. Las interrupciones pueden ser causadas por fallas de software o hardware. Las interrupciones de hardware se denominan (simplemente) Interrupciones, mientras que las interrupciones de software se denominan Excepciones o Trampas. Una excepción es una interrupción de software generada automáticamente, mientras que una trampa es una interrupción invocada por software iniciada por el programador. Una vez que se genera una interrupción (software o hardware), el control se transfiere a una subrutina especial llamada ISR (rutina de servicio de interrupción) que puede manejar las condiciones que genera la interrupción.

¿Qué es una interrupción?

El término interrupción generalmente se reserva para las interrupciones de hardware. Son interrupciones del control del programa causadas por eventos de hardware externo. Aquí, externo significa externo a la CPU. Las interrupciones de hardware generalmente provienen de muchas fuentes diferentes, como un chip temporizador, dispositivos periféricos (teclados, mouse, etc.), puertos de E/S (serie, paralelo, etc.), unidades de disco, reloj CMOS, tarjetas de expansión (tarjeta de sonido, video). tarjeta, etc.). Eso significa que las interrupciones de hardware casi nunca ocurren debido a algún evento relacionado con el programa en ejecución. Por ejemplo, un evento como la pulsación de una tecla en el teclado por parte del usuario, o un tiempo de espera del temporizador de hardware interno puede generar este tipo de interrupción e informar a la CPU que un determinado dispositivo necesita atención. En una situación como esa, la CPU detendrá lo que estaba haciendo (es decir, detiene el programa actual), brinda el servicio requerido por el dispositivo y vuelve al programa normal. Cuando ocurren interrupciones de hardware y la CPU inicia la ISR, se desactivan otras interrupciones de hardware (p.gramo. en máquinas de 80×86). Si necesita que ocurran otras interrupciones de hardware mientras se ejecuta el ISR, debe hacerlo explícitamente borrando el indicador de interrupción (con la instrucción sti). En máquinas 80×86, borrar el indicador de interrupción solo afectará las interrupciones de hardware.

¿Qué es una trampa?

A Trap puede identificarse como una transferencia de control, que es iniciada por el programador. El término trampa se usa indistintamente con el término excepción (que es una interrupción de software que ocurre automáticamente). Pero algunos pueden argumentar que una trampa es simplemente una llamada a una subrutina especial. Por lo tanto, entran en la categoría de interrupciones invocadas por software. Por ejemplo, en máquinas de 80×86, un programador puede usar la instrucción int para iniciar una trampa. Debido a que una trampa siempre es incondicional, el control siempre se transferirá a la subrutina asociada con la trampa. La instrucción exacta que invoca la rutina para manejar la trampa se identifica fácilmente porque se usa una instrucción explícita para especificar una trampa.

¿Cuál es la diferencia entre interrupción y captura?

Las interrupciones son interrupciones de hardware, mientras que las trampas son interrupciones invocadas por software. Las ocurrencias de interrupciones de hardware generalmente deshabilitan otras interrupciones de hardware, pero esto no es cierto para las trampas. Si necesita deshabilitar las interrupciones de hardware hasta que se active una trampa, debe borrar explícitamente el indicador de interrupción. Y, por lo general, el indicador de interrupción en la computadora afecta las interrupciones (de hardware) en lugar de las trampas. Esto significa que borrar esta bandera no evitará las trampas. A diferencia de las trampas, las interrupciones deben conservar el estado anterior de la CPU.

Recomendado: