jueves, 16 de marzo de 2017

Unidad#1: 1.4 El concepto de interrupciones


1.4 El concepto de interrupciones 

Definición: Una interrupción es el rompimiento en la secuencia de un programa para ejecutar un programa especial llamando una rutina de servicio cuya característica principal es que al finalizar regresa al punto donde se interrumpió el programa.

Dentro de una computadora existen dos clases de interrupciones: 

◘ Interrupciones por software: Son aquellas programadas por el usuario, es decir, el usuario decide cuando y donde ejecutarlas, generalmente son usadas para realizar entrada y salida.

Interrupciones por hardware: Son aquellas que son provocadas por dispositivos externos al procesador su característica principal es que no son programadas, esto es, pueden ocurrir en cualquier momento en el programa.
Existen dos clases de interrupciones de este tipo:
  • Interrupciones por hardware enmascarables: Aquellas en las que el usuario decide si quiere o no ser interrumpido.
  • Interrupciones por hardware no enmascarables (NMI): Aquellas que siempre interrumpen al programa.

Las interrupciones por software se ejecutan con ayuda de las instrucciones: INT e IRET, además se tiene 256 interrupciones: de la 00 a la FF.

Asociado al concepto de interrupción se tiene un área de memoria llamada vector de interrupciones; la cual contiene las direcciones de las rutinas de servicio de cada interrupción. Esta área se encuentra en el segmento 0000:0000.

Una interrupción es una situación especial que suspende la ejecución de un programa de modo que el sistema pueda realizar una acción para tratarla. Tal situación se da, por ejemplo, cuando un periférico requiere la atención del procesador para realizar una operación de E/S.

Las interrupciones constituyen quizá el mecanismo más importante para la conexión del microcontrolador con el mundo exterior, sincronizando la ejecución de programas con acontecimientos externos.

Pasos para el pricesamiento:

1. Terminar la ejecución de la instrucción máquina en curso.

2. Salva el valor de contador de programa, IP, en la pila, de manera que en la CPU, al terminar el proceso, pueda seguir ejecutando el programa a partir de la última instrucción.

3. La CPU salta a la dirección donde está almacenada la rutina de servicio de interrupción (ISR, Interrupt Service Routine) y ejecuta esa rutina que tiene como objetivo atender al dispositivo que generó la interrupción.

4. Una vez que la rutina de la interrupción termina, el procesador restaura el estado que había guardado en la pila en el paso 2 y retorna al programa que se estaba usando anteriormente.

Ejemplo de interrupciones:

  • int 01h-->un solo paso
  • int 02h-->interrupcion no enmascarable
  • int 03h--> punto de interrupcion
  • int 04h-->desbordamiento
  • int 05h-->impresion de pantalla
  • int 08h-->Cronometro
  • int 15h-->Servicios del sistema
  • int 16h-->Funciones de entrada del teclado
  • int 18h-->Entrada con el Basic de Rom
  • int 19h-->Cargador ed arranque
  • int 1Ah-->Leer y establecer la hora
  • int 1Bh-->Obtener el control con una interrupcion de teclado.
  • int 2oh-->Terminar un programa
  • int 33h->Funciones del Raton

No hay comentarios:

Publicar un comentario