2. Interrupciones
Una interrupción es un mecanismo que permite
ejecutar un bloque de instrucciones
interrumpiendo la ejecución de un proceso y su
objetivo principal es mejorar la eficiencia del
procesamiento.
3. Clases de Interrupciones
• De programa
Son aquellas que se producen cuando la CPU detecta una condición
extraordinaria durante la ejecución de un programa o instrucción
(Desbordamiento (Overflow), Direccionamiento invalido, Instrucción
invalida).
• De reloj
Estas son generadas por un reloj interno del procesador con el fin de que
el S.O lleve a cabo ciertas funciones con regularidad.
• De E/S
Estas son generadas por los dispositivos periféricos, ya que estos pueden
operar en forma independiente del procesador y ocurren cuando estos
dispositivos notifican al S.O que ha concluido una operación (Sea esta
satisfactoria o no) .
• Por fallas de hardware
• Estas ocurren por condiciones externas al programa que se esta
ejecutando. (Corte de energía)
4. Tratamiento de Interrupciones
• El S.O debe proveer las rutinas especiales para el manejo de
interrupciones con el fin de reconocer el tipo especifico de
interrupción que ha ocurrido y realizar el tratamiento debido:
1. Cuando se produce la interrupción, esta queda almacenada en un
registro especial donde se encuentra e tipo de interrupción
presentada.
2. Se salva el estado actual de CPU al momento de la interrupción.
3. Se hace transferencia incondicional al punto de entrada dela
rutina manejadora de interrupciones.
4. Una vez en la rutina manejadora, se determina el origen de la
interrupción.
5. Se mantienen enmascaradas las interrupciones con prioridad
igual o menor que aquella que se esta procesando.
6. Al finalizar la rutina manejadora, eventualmente continuara
ejecutándose el programa que estaba corriendo cuando se
produjo la interrupción.
5. Interrupciones Múltiples
• Existen dos enfoques para estas:
1. Inhabilitar las interrupciones mientras se esta tratando una.
2. Definir prioridades para estas y permitir que una de mas
alta prioridad pueda interrumpir la rutina de una de mas
baja prioridad.
6. Multiprogramación
• En un mismo intervalo de tiempo puede haber múltiples
tareas o procesos activos en un computador y claro está,
compitiendo por los recursos de memoria, E/S y CPU.
Podemos mezclar en el computador la ejecución de varios
tiempos de programas para armonizar los anchos de
bandas entre las diferentes unidades funcionales. La
intercalación de unos programas con otros pretende
favorecer la mejor utilización de los recursos mediante el
solapamiento de las operación de CPU y de E/S. A la
mezcla de operaciones de CPU y de E/S, correspondiente
a varios programas se le denomina multiprogramación.
7. Tiempo compartido
• La multiprogramación centra en la compartición del CPU
con varios programas o procesos en ejecución. En
algunos casos un programa de alta prioridad puede
ocupar el CPU demasiado tiempo, impidiendo que otros
la compartan. Este problema puede ser solucionando con
un sistema operativo de tiempo compartido. Esta asigna
intervalos de tiempo fijos o variables de tiempo a
múltiples programas, por lo que proporciona igualdad de
oportunidades en el acceso del CPU. El tiempo
compartido es eficaz cuando se aplica a un procesador
conectado a muchos terminales interactivos. Cada
usuario es un terminal puede interactuar con el
computador instantáneamente teniendo una respuesta
del procesador instantáneamente.