9 Interrupciones

 Durante el transcurso de ejecución de los procesos pueden darse dos situaciones especiales:

Interrupción

Se produce cuando la CPU deja de ejecutar el proceso en curso y pasa a realizar otra función de quién hace la interrupción. Cuando la CPU realiza esa función se dice que está atendiendo la interrupción. 

Las interrupciones pueden darse en dos niveles:

  • Nivel de software: El usuario realiza una llamada al sistema operativo para hacer uso de un recurso del núcleo.
  • Nivel de hardware: Un dispositivo requiere la atención de la CPU para ejecutar su driver.

Cuando se produce una interrupción se pasa el control al sistema operativo, quién salva el contexto del proceso que se estaba ejecutando y se analiza la interrupción. Las interrupciones están catalogadas y el sistema operativo dispone de rutas especiales para manipular cada tipo de interrupción. Una vez se ha atendido la interrupción la CPU continúa con su tarea anterior.

Excepción

Es un tipo de interrupción provocada por la misma CPU a causa de un error en la ejecución del proceso en activo como puede ser la realización de operaciones no permitidas, códigos de operación mal expresados, direcciones de memoria fuera de rango, etc. 

El tratamiento de una excepción es similar al de una interrupción como las anteriores, con la diferencia de que las excepciones, frecuentemente, no continúan el proceso con fallo, en cambio lo abortan.



Tipos de interrupciones

Del programa

Son aquellas que se producen cuando la CPU detecta una condición extraordinaria durante la ejecución de una instrucción del programa. Un ejemplo puede ser el desbordamiento de la Pila o una instrucción inválida.

De reloj

Su objetivo es que el sistema operativo entre a ejecutar operaciones de forma sistemática cada cierto intervalo tiempo. 

Entrada y salida

Generadas por un controlador de entrada y salida, para indicar la finalización de una operación sin problemas o avisar para ciertas condiciones de error. Ejemplo, una impresora terminando de imprimir.

Fallo del hardware

Ocasionada por un fallo tal como la falta de potencia de alimentación o un error de paridad en la memoria. 

Existen ciertos programas que no se pueden interrumpir, dependiendo de los requerimientos del programa el algoritmo planificador del sistema operativo se encarga de decidir cuándo se pueden hacer las interrupciones.

¿Qué pasa cuando ocurre una interrupción?

  1.  El dispositivo genera una señal para el procesador.
  2. El procesador, antes de responder a la interrupción termina la ejecución de la instrucción actual. 
  3. El procesador comprueba la interrupción.
  4. El procesador se prepara para transferir el control a la rutina de interrupción, (guarda la información requerida).
  5. El procesador carga al contador del programa la nueva dirección de memoria a ejecutar.
  6. Guarda el contenido de los registros en la pila.
  7. El manejador de interrupción comienza a procesar la interrupción.
  8. Se completa el procesamiento de la interrupción y se recuperan los valores guardados en la pila para ser restaurados en los registros.
  9. Se retoman los valores del estado del programa y contador del programa, de la pila del sistema.

No hay comentarios:

Publicar un comentario

Plataformas operativas