Interrupciones informatica
Enviado por qjesusp • 11 de Julio de 2016 • Monografía • 2.949 Palabras (12 Páginas) • 975 Visitas
Introducción
Una interrupción es el método de procesamiento del microprocesador por medios periféricos. Una interrupción es usada para detener temporalmente la ejecución de un programa. El microprocesador responde a la interrupción, deteniendo el servicio rutinario. El cual es un pequeño programa que instruye al microprocesador para decirle cómo manejar dicha interrupción.
Hay dos tipos básicos de interrupción, enmascarable y no-enmascarable.
La interrupción no enmascarable requiere una respuesta inmediata del microprocesador, esto sucede usualmente por circunstancias graves como una falla de energía.
La interrupción enmascarable es aquella que el microprocesador puede ignorar dependiendo de algunas condiciones predeterminadas y definidas por el registro de estado.
Las interrupciones pueden dividirse en 5 grupos según su prioridad, de arriba hacia abajo:
- Interrupción del hardware
- Interrupción no-enmascarable
- Interrupción del software
- Interrupción interna
- Reinicio
Hardware, software e interrupciones internas son un servicio con carácter prioritario. Cada interrupción es dada por un nivel diferente de prioridad, dado por un número, el “0” significa la prioridad más alta y el 255 la más baja.
Interrupción
Una interrupción es una señal al procesador emitida por hardware o software que indica un evento que requiere atención inmediata. Una interrupción alerta al procesador a una condición de alta prioridad que requiere la interrupción del código actual que el procesador está ejecutando. El procesador responde mediante la suspensión de sus actividades actuales, el ahorro de su estado, y la ejecución de una función llamada un manejador de interrupciones (o una rutina de servicio de interrupción, ISR) para hacer frente al evento. Esta interrupción es temporal, y, después de que el controlador de interrupción termina, el procesador reanuda actividades normales. Hay dos tipos de interrupciones: interrupciones de hardware e interrupciones de software.
Las interrupciones de hardware son utilizados por los dispositivos para comunicar que requieren la atención del sistema operativo. Internamente, las interrupciones de hardware se implementan utilizando señales de alerta electrónicos que se envían al procesador de un dispositivo externo, que es una parte de la computadora en sí misma, tal como un controlador de disco, o un periférico externo. Por ejemplo, al pulsar una tecla del teclado o mover el ratón provoca interrupciones de hardware que hacen al procesador leer la posición del ratón o tecleo de teclado. A diferencia del tipo software, las interrupciones de hardware son asíncronas y pueden ocurrir en el medio de ejecución de instrucciones, lo que requiere un cuidado adicional en la programación. El acto de iniciar una alarma de proceso se refiere como una petición de interrupción (IRQ).
Una interrupción software es causada ya sea por una condición excepcional en el propio procesador, o una instrucción especial en el conjunto de instrucciones que provoca una interrupción cuando se ejecuta. El primero se llama a menudo una trampa o una excepción y se usa para errores o eventos que ocurren durante la ejecución del programa que son lo suficientemente excepcional de que no pueden ser manejados dentro del propio programa. Por ejemplo, si la unidad aritmética lógica del procesador recibe la orden de dividir un número entre cero, esta demanda imposible causará una excepción de división por cero, tal vez haciendo que el ordenador abandone el cálculo o muestre un mensaje de error. Las instrucciones de interrupción de software funcionan de manera similar a las llamadas de subrutina y se utilizan para una variedad de propósitos, tales como para solicitar servicios de software de sistema de bajo nivel, tales como los controladores de dispositivos. Por ejemplo, los ordenadores a menudo usan instrucciones de interrupción de software para comunicarse con el controlador de disco para solicitar la lectura o escritura de datos desde y hacia el disco.
Cada interrupción tiene su propio controlador de interrupciones. El número de interrupciones de hardware está limitado por el número de solicitud de interrupción (IRQ) a las líneas del procesador, pero puede haber cientos de diferentes interrupciones de software. Las interrupciones son una técnica utilizada comúnmente para la multitarea, sobre todo en tiempo real. Se dice que un sistema de este tipo debe ser guiado para interrumpir.
Mecanismo de las interrupciones
Todas las computadoras de mesa actuales disponen en su placa base un controlador de interrupciones. Este permite entre 16 y 24 IRQ.
Las líneas IRQ (Interrupt Request, que significa petición de interrupción) son las encargadas de avisar la necesidad de interrupciones, es decir son las que se comunican con el procesador para generar la interrupción. Estas IRQ llegan al controlador de interrupciones, que es el encargado de la gestión de las interrupciones, dicho controlador es el encargado de habilitar o deshabilitar las interrupciones, y en caso de que hayan varias al mismo tiempo, se encarga de ajustar las prioridades de cada una (interrupciones enmascarables).
También hay interrupciones que no se pueden enmascarar o deshabilitar, estas son directas, es decir no pasan por el controlador de interrupciones y son las no enmascarables.
Los pasos para el procesamiento de una IRQ son:
- Terminar la ejecución de la instrucción de la maquina en curso
- Guardar la información del programa o cualquier registro de modo que al finalizar el proceso, cuando se vuelva a ejecutar, siga funcionando a partir de la ultima instrucción
- El CPU va directamente a donde esa almacenada la rutina del servicio de interrupción y ejecuta dicha rutina para atender el objetivo que generó la interrupción
- Cuando la rutina de interrupción termina, el procesador restaura el estado que se había guardado en el paso 2 y restaura el programa a su uso normal.
Clasificación de Interrupciones
Las interrupciones se pueden clasificar de la siguiente manera:
Interrupción enmascarable (IRQ): una interrupción de hardware que puede ser ignorada estableciendo un bit en una interrupción de la máscara de registro (IMR). Los procesadores tienen típicamente una máscara de interrupción interna, que permite al software ignorar todas las interrupciones de hardware externo, mientras se establece. El ajuste o la eliminación de esta máscara puede generar un acceso más rápido a un registro de máscara de interrupción (IMR) en un controlador de interrupciones o deshabilitar las interrupciones en el propio dispositivo.
...