Get Started. It's Free
or sign up with your email address
INTERRUPCIONES by Mind Map: INTERRUPCIONES

1. PROCESO DE INTERRUPCIÓN

1.1. 1. Terminar la ejecución de la instrucción máquina en curso. 2. 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. 3. 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. 4. 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.

2. 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. Una interrupción es una suspensión temporal de la ejecución de un proceso, para pasar a ejecutar una subrutina de servicio de interrupción, la cual, por lo general, no forma parte del programa, sino que pertenece al sistema operativo o al BIOS. Una vez finalizada dicha subrutina, se reanuda la ejecución del programa.

3. TIPOS DE INTERRUPCIONES

3.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. • 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. • 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 (por ejemplo, en DOS se realiza la instrucción INT 0x21 y en Unix se utiliza INT 0x80 para hacer llamadas de sistema).

4. EJEMPLOS DE INTERRUPCIONES

4.1. 1. Desbordamiento de la Pila 2. Desbordamiento (Overflow) 3. Direccionamiento inválido 4. Instrucción inválida 5. Violación de protección 6. Interrupciones de programa. 7. Interrupciones de llamada al supervisor.

5. SISTEMAS DE PRIORIDAD

5.1. El sistema operativo necesita un mecanismo para priorizar las interrupciones y tratar primero las más urgentes. Para ello, existen varias alternativas: • Interrupciones simultáneas: No tienen por qué ocurrir de manera simultánea sino que se refiere a que en un momento dado pueden haber varias interrupciones activas. • Interrupciones anidadas: Mientras se está procesando una determinada rutina de servicio de interrupción sucede otra señal de interrupción. • Inhibición de interrupciones: Se deshabilitan las demás interrupciones mientras se está tratando una.

6. DETERMINACIÓN DE LA FUENTE QUE GENERA LA INTERRUPCIÓN

6.1. Hay distintas formas de identificar la fuente de una determinada interrupción. La primera alternativa que se consideró fue asignar una línea (un bit) para cada interrupción, lo cual suponía un gran costo en cuanto a la relación de número de dispositivos y número de bits usados y a menudo limitaba el número de dispositivos que se podían conectar. • Polling: el microprocesador comp rueba de manera sistemática todos los dispositivos de manera que «busca» cuál de ellos fue el que solicitó la interrupción. Esto tiene una ventaja y es que es barato a nivel de coste hardware ya que el polling se implementa en software, no obstante tiene otras desventajas que no podemos olvidar y es que suele ser lento porque tiene que comprobar en serie todos los dispositivos y establece una prioridad en los dispositivos (el orden de sondeo) y por tanto puede provocar inanición. • Interrupciones vectorizadas: este concepto fue ya tratado en el apartado anterior. Como ventajas podemos destacar que suele ser rápido pero implica un alto costo en el hardware. • Hardware paralelo: se utiliza un registro de interrupción cuyos bits se controlan de forma independiente por las señales de petición de interrupción de cada periférico. Según la posición de cada bit en el registro, se establece la prioridad.