Interrupción vs trampa
En cualquier computadora, durante su ejecución normal de un programa, podría haber eventos que pueden hacer 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 llaman (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 plantea 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 planteadas por la interrupción.
Que es una interrupción?
El término interrupción generalmente se reserva para interrupciones de hardware. Son interrupciones de control de programas causadas por eventos de hardware externos. Aquí, los medios externos externos a la CPU. Las interrupciones de hardware generalmente provienen de muchas fuentes diferentes, como chip de 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, tarjeta de video, etc.). Eso significa que las interrupciones de hardware casi nunca ocurren debido a algún evento relacionado con el programa de ejecución. Por ejemplo, un evento como una tecla Presione en el teclado por parte del usuario, o un tiempo de tiempo de temporizador de hardware interno puede elevar este tipo de interrupción y puede informar a la CPU que un determinado dispositivo necesita atención. En una situación como esa, la CPU detendrá lo que sea que estuviera haciendo (yo.mi. Pausa el programa actual), proporciona el servicio requerido por el dispositivo y volverá al programa normal. Cuando se producen interrupciones de hardware y la CPU inicia el ISR, otras interrupciones de hardware están deshabilitadas (e.gramo. en 80 × 86 máquinas). Si necesita que ocurran otras interrupciones de hardware mientras se ejecuta el ISR, debe hacerlo explícitamente al borrar el indicador de interrupción (con ITS instrucción). En 80 × 86 máquinas, la limpieza de la bandera de interrupción solo afectará las interrupciones de hardware.
Que es una trampa?
Se puede identificar una trampa como una transferencia de control, que es iniciada por el programador. El término trampa se usa indistintamente con la excepción del término (que es una interrupción de software automáticamente que ocurre). Pero algunos pueden argumentar que una trampa es simplemente una llamada de subrutina especial. Por lo tanto, caen a la categoría de interrupciones invocadas por software. Por ejemplo, en 80 × 86 máquinas, un programador puede usar el En t instrucción para iniciar una trampa. Porque 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 trampa??
Las interrupciones son interrupciones de hardware, mientras que las trampas son interrupciones de software. Las ocurrencias de interrupciones de hardware generalmente desactivan otras interrupciones de hardware, pero esto no es cierto para las trampas. Si necesita rechazar interrupciones de hardware hasta que se sirva una trampa, debe despejar explícitamente el indicador de interrupción. Y generalmente el indicador de interrupción en la computadora afecta (hardware) interrumpir en lugar de trampas. Esto significa que limpiar esta bandera no evitará trampas. A diferencia de las trampas, las interrupciones deben preservar el estado anterior de la CPU.