Interruptores
yajis_lunita24 de Noviembre de 2014
782 Palabras (4 Páginas)192 Visitas
INTERRUPCIONES
CONCEPTO DE INTERRUPCIONES
Una interrupción es una operación del hardware que indica a la CPU que detenga la ejecución de lo que estaba haciendo, conserva la situación del proceso y envía a la CPU a una dirección determinada en la que tiene un programa de control de interrupción o de servicio de interrupciones.
CAUSAS DE INTERRUPCIONES
* Error de máquina detectado
* Error de programa
* Interrupción externa (el operador pide una determinada función)
* Interrupción de entrada/salida (el dispositivo de E/S pide atención o hace una indicación de que ha iniciado una operación)
* Llamada al supervisor por el programa
NECESIDAD DE UN SISTEMA DE INTERRUPCIONES
Surge de la sincronización entre CPU y los dispositivos. Dado que los componentes mecánicos no cumplen con la exactitud de tiempos de ejecución que se da en la CPU, y puede averiguar:
- Si el dispositivo está preparado
- Si una operación E/S se está ejecutando
- Si una operación ha terminado
Cuando se trata de periféricos resulta eficiente la modalidad de interrupción para la atención de estos
=> atiende al periférico cuando lo solicite y puede utilizar el resto de tiempo disponible en ejecutar otro proceso (p.e. la atención de otro periférico)
INTERRUPCIONES SIMPLES
-Solucionan los problemas del polling mediante una única línea de interrupción.
CPU con interrupciones:
-Tiene una línea de entrada de petición de interrupción (IRQ), normalmente activa a nivel bajo.
-Dispone de un bit interno de inhibición de interrupciones (I-bit), a 1 para inhibir la entrada IRQ.
-Dispone de instrucciones máquina para actuar sobre el I-bit.
-La petición de interrupción se traduce en la llamada a una rutina servidora de interrupción (ISR).
-La CPU forma la dirección en memoria de comienzo de la ISR.
Procesamiento de la interrupción (si I-bit es 0):
1.- La CPU termina de ejecutar la instrucción actual.
2.- Se guarda el estado de la CPU en la pila.
3.- Se deshabilitan las futuras interrupciones poniendo I-bit a 1.
4.- Se carga en el contador del programa la dirección de comienzo de la ISR, con lo que se ejecuta.
5.- La ISR retorna mediante una instrucción especial de fin de interrupción (p.ej.: RETI).
6.- Se recupera el estado de la CPU de la pila.
7.- El programa interrumpido continúa por donde se quedó.
EJEMPLO:
La interrupción desde un periférico se inicia, cuando tiene información para entregar, a través del envío de una señal a la CPU para solicitar atención conocida como IRQ (Interrupt Request)
Si la interrupción está enmascarada la CPU hace caso omiso de la solicitud. Si la interrupción no está enmascarada el computador responde al periférico, que recibirá la información, por medio de una señal IACK (Interrupt Acknowledge).
Luego el periférico o manejador de interrupciones envía una dirección de memoria a la CPU. Esta dirección de memoria contiene a su vez la dirección de la rutina que efectivamente administra la recepción de la información.
La CPU hace una salto a la posición de memoria indicada en la celda correspondiente a la de la interrupción y la rutina contenida a partir de allí toma el control del sistema. El "PROGRAM COUNTER" (contiene la dirección de memoria de la próxima instrucción a ejecutar) y el registro de status son empujados al stack (pila).
Una vez finalizada la ejecución de la interrupción, devuelve el control a la CPU que puede continuar con el proceso interrumpido o iniciar otro nuevo.
Objetivo de las Interrupciones en un Sistema
...