Вы находитесь на странице: 1из 0

T E M A 7

Interrupciones
7-1 Interrupciones

Organizacin y Estructura del Computador II ER/JL

INDICE
7.- Introduccin al Tema_________________________________________________________ 7-2
7.1 Interrupciones ______________________________________________________________ 7-2
7.1.1 Tipos de Interrupciones______________________________________________________________7-2
a).- Interrupciones de Programa __________________________________________________________7-2
b).- Interrupciones de Llamada al Supervisor________________________________________________7-3
c).- Interrupciones de Falla de Mquina ____________________________________________________7-3
d).- Interrupciones de Entrada/Salida ______________________________________________________7-3
e).- Interrupciones Externas _____________________________________________________________7-4
7.1.2 Clasificacin de las Interrupciones _____________________________________________________7-4
a).- Interrupciones Sncronas ____________________________________________________________7-4
b).- Interrupciones Asncronas ___________________________________________________________7-5
7.1.3 Enmascaramiento y Prioridades de las interrupciones ______________________________________7-5
a).- Enmascaramiento de las interrupciones _________________________________________________7-5
b).- Prioridades de las Interrupciones ______________________________________________________7-6
7.1.4 Mecanismos para el Tratamiento de Interrupciones ________________________________________7-7
Cronograma de Actividades
Puntos Clase

Interrupciones 1
Interrupciones en MIPS 1
Entrada/Salida 1

7-2 Interrupciones

Organizacin y Estructura del Computador II ER/JL

7.- Introduccin al Tema
7.1 Interrupciones
El CPU de un computador basado en el modelo de Von Neuman, esta diseado para
ejecutar instrucciones secuencialmente a menos que se ejecute una instruccin que altera
el orden de ejecucin secuencial y modifica el contenido del PC (bifurcacin, llamada a
una subrutina, retorno desde una subrutina).
Cual seria la manera de indicar al CPU que ocurri alguno de estos eventos:
Se decodifica un cdigo de operacin que no existe en el repertorio de instrucciones.
Termin de Imprimir una impresora
Ocurre una falla en el hardware, que es detectada por los circuitos correspondientes.
Se necesita llamar al SO para que ejecute, que no estn al alcance del programa,
ejemplo: escribir en disco.
Interrumpiendo al CPU para que atienda alguno de esos eventos.
Una interrupcin se puede definir como un evento asncrono al programa que se est
ejecutando, o excepcional de dicho programa. Para este evento deben proveerse
mecanismos especiales que permiten su tratamiento.
7.1.1 Tipos de Interrupciones
a).- Interrupciones de Programa
Las interrupciones de programa son aquellas que se producen cuando el CPU detecta
una condicin extraordinaria durante la ejecucin de una instruccin e programa.
Ejemplos:
Desbordamiento de la Pila
Desbordamiento (Overflow)
Direccionamiento invlido
Instruccin invlida
Violacin de proteccin
7-3 Interrupciones

Organizacin y Estructura del Computador II ER/JL

La mayora de las interrupciones de programa, por la naturaleza de las mismas obliga a
la cancelacin del programa que las produjo, lo que se denomina finalizacin anormal de un
programa; mientras en algunos casos es posible recuperar la condicin presentada y
continuar la ejecucin del programa una vez que se termine la interrupcin.
b).- Interrupciones de Llamada al Supervisor
Las interrupciones de llamada al supervisor (SVC: Supervisor Call) es una forma de
permitir la comunicacin entre los programas y el sistema operativo, para que este ciertas
acciones que por su naturaleza estn reservadas, debido a que implican el manejo de
recursos y operaciones cuyo acceso no est permitido a los programas de usuario.
Ejemplos:
Inicio de las operaciones de Entrada/Salida.
Asignacin de memoria y otros recursos.
Lectura o escritura en disco.
Mostrar por pantalla.
La mayora de las interrupciones de SVC, implica que una o ms instrucciones especiales
sern ejecutadas por el SO. Generalmente, se puede continuar ejecutando el programa
que produjo
c).- Interrupciones de Falla de Mquina
Este tipo de interrupcin ocurre cuando, los circuitos especiales (incorporados en la
mayora de computadores actuales) detectan condiciones de error de los componentes de
hardware.
Ejemplos:
Transmisin de informacin entre dispositivos (checksun)
Sector de Disco
CD esta malo
Fuente de Poder Mala
d).- Interrupciones de Entrada/Salida
Los dispositivos perifricos pueden operar en forma independiente del procesador central
que controlan las operaciones de los mismos. Esto permite que en un dispositivo particular
controle la operacin que esta realizando por completo. Al concluir esta operacin, en forma
7-4 Interrupciones

Organizacin y Estructura del Computador II ER/JL

satisfactoria o no, es necesario notificar al sistema operativo, para que ste pueda tomar las
acciones correspondientes e iniciar, siempre que sea posible, nuevas operaciones en dicho
dispositivo. Esta notificacin se realiza a travs de una interrupcin. A este tipo de
interrupcin se le denomina Interrupcin de Entrada/Salida
Ejemplos:
Una impresora termin de Imprimir.
Un disco termin de traer el bloque de memoria que se le haba solicitado.
En todos los casos cuando se introduce una interrupcin de E/S, debe suspenderse la
ejecucin del programa que estaba en el CPU, para atender la interrupcin producida, y
posteriormente reiniciar la ejecucin del programa que fue interrumpido.
e).- Interrupciones Externas
Son interrupciones provocadas por condiciones externas al programa que se esta
ejecutando, y que no son provocadas por culminacin de operaciones en dispositivos de
E/S.
Ejemplos:
Interrupcin de Reloj.
Comunicacin entre el operador y el sistema
Cuantos trabajos estn ejecutndose en el CPU
7.1.2 Clasificacin de las Interrupciones
Las interrupciones se pueden clasificar en: interrupciones Asncronas e interrupciones
Sncronas, en las cuales se pueden agrupar los tipos de interrupciones que se estudiaron
anteriormente.
a).- Interrupciones Sncronas
Las interrupciones sncronas son aquellas provocadas por la ejecucin de una instruccin
de programa en el CPU, siendo stas de una naturaleza tal, que necesitan de atencin
especial; debido a los requerimientos necesarios para su tratamiento y los resultados que se
producen durante el mismo.
Como estas son interrupciones internas al programa que se est ejecutando, los nicos
tipos de interrupciones que pueden ser provocadas por esta causa son:
7-5 Interrupciones

Organizacin y Estructura del Computador II ER/JL

Interrupciones de programa.
Interrupciones de llamada al supervisor.
b).- Interrupciones Asncronas
Las interrupciones asncronas son provocadas por eventos externos al programa que se
ejecuta, y su objetivo es notificar al sistema operativo de algn cambio en el ambiente de
operativdad del sistema, permitindose la interaccin del operador de la mquina para que
pueda tomar decisiones e informar acciones que no pueden ser tomadas automticamente
por el sistema operativo.
Dentro de las interrupciones asncronas se pueden distinguir tres grupos diferentes:
Interrupciones por falla de mquina.
Interrupciones de Entrada/Salida.
Interrupciones Externas.
7.1.3 Enmascaramiento y Prioridades de las interrupciones
a).- Enmascaramiento de las interrupciones
No siempre es posible la atencin inmediata de una interrupcin, siendo necesario en
algunos casos posponer la atencin de la misma o inhibir el tratamiento correspondiente.
En los sistemas operativos se presentan situaciones en las cuales es necesario posponer
la atencin de una interrupcin, o bien no llevarla a cabo. Por ejemplo, si ha ocurrido una
interrupcin por finalizacin de una operacin en un dispositivo de entrada/salida, y luego se
produce una nueva interrupcin desde otro dispositivo sin que haya terminado de atender la
primera interrupcin, es conveniente terminar la atencin de la primera y posponer mientras
tanto las acciones necesarias para atender la segunda interrupcin. En otros casos, algunas
interrupciones de falla de mquina no pueden ser pospuestas cuando ocurren.
El enmascaramiento de interrupciones se hace a travs de los componentes de
hardware, stos pueden tomar un estado en el cual, cuando ocurra una interrupcin de
cierto tipo, se mantiene dicha condicin como una seal, pero el mecanismo de interrupcin
no las tomar en cuenta hasta que no llegue el momento apropiado. En el caso de
enmascaramiento total de interrupciones, es decir, que no se atienden cuando ocurren, el
7-6 Interrupciones

Organizacin y Estructura del Computador II ER/JL

enmascaramiento puede ser temporal ya que el sistema operativo deshabilita la atencin de
las interrupciones y las habilita posteriormente.
b).- Prioridades de las Interrupciones
En las secciones anteriores se estudiaron los diferentes tipos de interrupciones, y se
explic que la ocurrencia de stas pueden ser sncronas (generadas por otro programa) y
asncronas (generadas por un agente externo). Es posible que durante el tratamiento de una
interrupcin ocurra una segunda interrupcin, para lo cual podemos usar un mecanismo de
enmascaramiento que retarde la atencin de la segunda interrupcin. Sin embargo, hay dos
casos que convienen estudiar:
La ocurrencia simultnea de varias interrupciones: En este caso es necesario
establecer un mecanismo, que permita atender todas las interrupciones presentes en
un determinado orden. Este orden de atencin no puede ser dado por el tiempo, ya
que todas ocurrieron en el mismo momento.
Dos interrupciones consecutivas: Ocurre la segunda interrupcin, sin que se halla
terminado de atender la primera, pero la segunda interrupcin no se puede
enmascarar, es decir, debe ser atendida de inmediato. Entonces se deber suspender
temporalmente las acciones que se llevan a cabo para el tratamiento de la primera
interrupcin, y proceder a tratar la segunda interrupcin. Esta situacin es posible,
cuando la condicin por la cual se present la segunda interrupcin, puede tener
efectos generales sobre el sistema completo e inclusive sobre la interrupcin que se
atiende.
Las dos situaciones presentadas anteriormente, implican que deben asignarse
prioridades a los diferentes tipos de interrupciones, esta asignacin ir en funcin de la
importancia que representan las mismas. Adems debe disponerse de un mecanismo de
hardware que garantice el tratamiento de las interrupciones de mayor prioridad frente
delante de aquellas de menor prioridad. Esto es posible de realizar, si se utiliza el
mecanismo de enmascaramiento, de manera que cuando se est tratando una interrupcin
de cierto nivel de prioridad, sean enmascaradas todas las interrupciones con prioridad igual
o menor
7-7 Interrupciones

Organizacin y Estructura del Computador II ER/JL

7.1.4 Mecanismos para el Tratamiento de Interrupciones
El ncleo del sistema operativo debe proveer las rutinas especiales para el manejo de
interrupciones, estas rutinas deben ser capaces de reconocer el tipo especfico de
interrupcin que ha ocurrido, para hacer el tratamiento correspondiente.
A continuacin se listan el conjunto de pasos para resolver una interrupcin:
1. Al momento de producirse una interrupcin, debe quedar almacenada en un registro
especial, la identificacin del tipo de interrupcin que se ha presentado.
2. Se debe salvar el estado que tena el CPU cuando se produjo la interrupcin, es
decir salvar el contador de programa y los registros e indicadores en un rea
reservada de memoria.
3. Se hace una transferencia incondicional al punto de entrada de la rutina manejadora
de interrupciones.
Los pasos 1 al 3 son ejecutados automticamente por el mecanismo de hardware
encargado de manejar las interrupciones. La direccin de comienzo de la rutina manejadora
de interrupciones debe ser fija en memoria.
4. Una vez en la rutina manejadora de interrupciones, se determinar el origen de la
interrupcin, utilizando la informacin almacenada en el registro especial mencionado
en el paso 1. Identificada la condicin de interrupcin presente, se procedern a
tomar las acciones correspondientes (en general, se har una transferencia a la
rutina de servicio de interrupcin que corresponde al tipo de interrupcin presentado).
5. Se mantienen enmascaradas las interrupciones con prioridad igual o menor que
aquella que se est procesando.
6. Al finalizar de ejecutarse la rutina manejadora de interrupciones, eventualmente
continuar ejecutndose el programa que estaba corriendo cuando se produjo la
interrupcin, restableciendo los valores del contador de programa, registros e
indicadores, desde el rea de memoria donde haban sido salvados cuando se
present la interrupcin. Si hubiese interrupciones pendientes por atender, estas
debern ser tratadas, antes de dar control nuevamente al programa que inicialmente
fue interrumpido.

Вам также может понравиться