1. Es una señal recibida por el procesador de una computadora, para indicarle que debe «interrumpir» el curso de ejecución actual y pasar a ejecutar código específico para tratar esta situación.
2. Las interrupciones son generadas por los dispositivos periféricos habilitando una señal del CPU (llamada IRQ del inglés "interrupt request") para solicitar atención del mismo.
3. generacion de la interrupcion
4. Terminar la ejecución de la instrucción máquina en curso.
5. Una vez que la rutina de la interrupción termina, el procesador restaura el estado que había guardado en la pila en el paso 2 y retorna al programa que se estaba usando anteriormente.
6. 1
7. 2
8. Interrupciones simultáneas
9. En este método tenemos dos alternativas, una de ellas es que exista algún hardware que tenga como entradas las señales de interrupción y de como salida la interrupción más prioritaria que está activa en ese momento. Otra alternativa es tener un método de identificación de prioridades distribuida y no generalizada como en el caso anterior, en este caso tenemos que destacar dos técnicas distintas que se pueden implementar en la práctica:
10. Interrupciones anidadas
11. Existen dos métodos para tratar las interrupciones anidadas. El primero se basa en inhabilitar las interrupciones mientras se está ejecutando una determinada RSI. Esto puede realizarlo el hardware de manera automática en algunos procesadores, pero en otros será el usuario el encargado de deshabilitarlas en caso de que no desee que ninguna otra interrupción pueda interrumpir el transcurso normal de la rutina de servicio de interrupción
12. otros tipos de interrupciones
13. Polling: el microprocesador verifica los dispositivos y el orden de sondeo determina la prioridad.
14. Daisy-chain (conexión en cadena): se puede conectar los distintos dispositivos en cadena, en orden decreciente de prioridad y por tanto la señal de reconocimiento de interrupción (INTA#) solo será pasada al siguiente dispositivo en caso de que el anterior (más prioritario) no haya solicitado los servicios del procesador.
15. Híbrida: mezcla las dos técnicas explicadas anteriormente.
16. Tipos de interrupciones
16.1. Interrupciones de hardware. Estas son asíncronas a la ejecución del procesador, es decir, se pueden producir en cualquier momento independientemente de lo que esté haciendo el CPU en ese momento. Las causas que las producen son externas al procesador y a menudo suelen estar ligadas con los distintos dispositivos de entrada o salida.
16.2. Excepciones. Son aquellas que se producen de forma síncrona a la ejecución del procesador y por tanto podrían predecirse si se analiza con detenimiento la traza del programa que en ese momento estaba siendo ejecutado en la CPU. Normalmente son causadas al realizarse operaciones no permitidas tales como la división entre 0, el desbordamiento, el acceso a una posición de memoria no permitida, etc.
16.3. Interrupciones por software. Las interrupciones por software son aquellas generadas por un programa en ejecución. Para generarlas, existen distintas instrucciones en el código máquina que permiten al programador producir una interrupción, las cuales suelen tener nemotécnicos tales como INT
17. ejemplo. cuando un disco duro completa una lectura solicita atención al igual que cada vez que se presiona una tecla o se mueve el ratón.
18. Procesamiento de una interrupción
19. Salvar el estado del procesador (valores de registros y flags) y el valor del contador de programa, IP, en la pila, de manera que en la CPU, al terminar el proceso de interrupción, pueda seguir ejecutando el programa a partir de la última instrucción.
20. La CPU salta a la dirección donde está almacenada la rutina de servicio de interrupción (Interrupt Service Routine, o abreviado ISR) y ejecuta esa rutina que tiene como objetivo atender al dispositivo que generó la interrupción.
21. 3
22. 4
23. Inhibición de interrupciones
24. Hay distintas alternativas de inhibición de interrupciones. Como ya hemos visto estas se pueden hacer de manera automática por el hardware en algunos casos mientras que en otros será el usuario el encargado de realizarlo por software y esto depende de la arquitectura del procesador que consideremos. Las distintas opciones son:
25. Deshabilitar todas las interrupciones. Para esto basta con inhibir el bit del registro de flag dedicado a las interrupciones.
26. Deshabilitar al principio de la RSI y activarlas de nuevo al finalizar la misma. Puede ser de manera automática o por el usuario.
27. Desactivar solo las interrupciones que tengan menor prioridad que la asociada a la RSI que se está ejecutando en ese momento.
28. Deshabilitar de forma selectiva distintos niveles de prioridad de interrupción. Para lo cual se emplean registros especiales denominados máscaras en el que cada uno de sus bits identifican a un nivel distinto y modificando su contenido se puede establecer que niveles están activos en ese momento. Se puede cambiar por el programador.