Download Tesis - Dirección General de Servicios Telemáticos

Document related concepts
no text concepts found
Transcript
iniciando la subrutina de servicio de interrupción.
b) La solicitud de interrupción se ignora hasta concluir la ejecución de la
instrucción actual. Esto es necesario para poder detener la ejecución del
programa normal y luego reanudarla de manera predecible, sin que se
omitan instrucciones o se extravíen datos intermedios.
c) Se guarda el estado del programa actual. La rutina de servicio de
interrupción usará los mismo registros de la CPU que el programa normal
y, por tanto, el contenido de estos registros debe guardarse en la
memoria antes de ejecutar la rutina de servicio de interrupción, ya que
los registros se escribirán con otra información durante la ejecución de la
rutina. Si no se efectúa este paso, al reanudar la ejecución del programa
normal los registros contendrán datos distintos de los que existían al
detener la ejecución y se generarán errores en el programa principal.
d) Se ejecuta la subrutina de servicio de interrupción. Con esto
generalmente se llevará a cabo la entrada o salida de datos relacionadas
con el dispositivo que interrumpió.
e) Al terminar la subrutina de servicio de interrupción se restaura el
programa original, cargando de nuevo en los registros de la CPU los
valores que existían al detener la ejecución del programa normal.
f) La ejecución del programa normal se reanuda a partir de la instrucción
que está inmediatamente después de la última instrucción que se
completó antes de atender la interrupción.
Retención de estado
Este es un requisito idéntico al que se impone al llamar a una subrutina.
Siempre que se ejecuta una subrutina de servicio de interrupción, es necesario
guardar el contenido del contador a fin de poder, más tarde, reanudar la ejecución
del programa normal en la instrucción correcta. Además, hay que guardar
cualquier registro que se usa en la subrutina de servicio de interrupción para evitar
que se corrompan los datos del programa normal.