Arquitectura de Computadoras
Mecanismo mediante el cual se puede interrumpir el procesamiento normal de la CPU. Pueden ser generadas por:
-como resultado de la ejecución de una instrucción
-generadas por un temporizador interno del procesador
-por una operación de E/S
-por un fallo de hardware
Para permitir el uso de interrupciones, se añade un ciclo de interrupción al final de ciclo de instrucción.En el ciclo de interrupción, el procesador comprueba si se ha generado alguna interrupción, indicada por alguna señal de interrupción. El proceso de interrupción completo es:
1. Un módulo o controlador de dispositivo (PIC) envía una señal del pedido de interrupción al procesador.
2. Al finalizar el ciclo de instrucción, el procesador chequea si hay alguna interrupción pendiente. Si la hay, envíauna señal de reconocimiento al controlador e inhabilita las interrupciones.
3. El procesador se prepara para transferir el control a una rutina de gestión de interrupción. Guarda el estado del procesador (registro PSW) y el valor del PC.
4. El módulo responde a la señal de reconocimiento colocando un vector en el bus de datos.
5. El procesador utiliza el vector para calcular la dirección decomienzo de la rutina de gestión de interrupción, y la carga en el PC.
6. Se procede a ejecutar la rutina (se guardan los registros en la pila por si se modifican adentro de la rutina)
7. Cuando termina el proceso de la interrupción, se desapilan todos los valores y se retorna al programa original.
Las interrupciones pueden ser:
interrupciones por hardware: son las generadas por dispositivos deE/S. El sistema tiene que manejar estos eventos nos planeados que no están relacionados con lo que se está ejecutando.
Traps/excepciones: son interrupciones por hardware creadas por el procesador en respuesta a ciertos eventos.
interrupciones por software: permiten que las subrutinas del sistema se carguen en cualquier lugar. Suelen usarse para llamar a funciones del SO. No requieren conocer ladirección de la rutina en tiempo de ejecución. Si no estuvieran, tendría que
escribir todas las funciones que necesito,
al cargar un programa debería mirar todas las llamadas a funciones del BIOS y SO, y reemplazar en el código las direcciones de todas estas funciones invocadas.
Interrupciones múltiples: cuando se producen hay 2 formas de manejarlas
1. inhabilitar interrupciones mientras seestá procesando otra: si se produce una interrupción, el procesador la ignora y se mantiene pendiente hasta que vuelvan a habilitarse las interrupciones. El problema es que las interrupciones se manejan una tras otra como van llegando, sin establecer prioridad.
2. Definir prioridades: y permitir que una interrupción de prioridad mas alta pueda interrumpir a un gestor de interrupción de prioridadmenor. Por ejemplo, un sistema con 3 dispositivos de E/S de prioridad creciente: impresora (2), disco (4) y línea de comunicaciones (5). Supongamos que la impresora genera una interrupción y se atiende. Mientras se está ejecutando la rutina de la impresora, la línea de comunicaciones envía una señal de pedido de interrupción. Como tiene prioridad mayor, el procesador suspende temporalmente laejecución de la rutina de la impresora, guarda el contexto y los datos, y gestiona la rutina de mayor prioridad. Mientras ocurre, el disco envía una señal de interrupción. Como el disco tiene prioridad menor a la línea de comunicaciones, se deja pendiente y se finaliza con la rutina de la línea. Cuando termina, como disco tiene mayor prioridad que impresora, no se vuelve a la rutina de la impresora,sino que se da lugar a la rutina del disco sin siquiera ejecutar una sola instrucción de la rutina de la impresora. Cuando la rutina de interrupción del disco termine, se retoma la rutina de la impresora, y finalmente se retoma el programa original.
Módulos de E/S
Un módulo de E/S transfiere datos desde los dispositivos externos a la CPU y a la memoria, y viceversa. El módulo realiza la...
Regístrate para leer el documento completo.