Interrupciones bios

Solo disponible en BuenasTareas
  • Páginas : 11 (2518 palabras )
  • Descarga(s) : 0
  • Publicado : 12 de marzo de 2011
Leer documento completo
Vista previa del texto
Las fases de la sincronización por interrupción
Petición de interrupción El proceso de sincronización por interrupción se inicia cuando el controlador informa al procesador, mediante una petición de interrupción, de que ha ocurrido un evento que requiere su atención. Lógicamente, si el controlador no está capacitado para generar tal petición entonces la sincronización por interrupción entre elprocesador y el controlador no es posible. En la descripción de un controlador debe siempre quedar claro en qué condiciones el controlador generará una petición de interrupción. En el caso de los controladores con los que trabajamos es este curso, los motivos de interrupción se recogen en la tabla siguiente. Controlador Reloj Teclado Pantalla Disco Circunstancias en que pide interrupción 18 vecescada segundo Cada vez que se produce un MAKE o un BREAK No produce interrupciones Cuando ha finalizado la última operación solicitada por el procesador (lectura o escritura de un sector) Cuando se ha enviado a imprimir el carácter y ha quedado libre el registro de datos para alojar uno nuevo

Impresora

Algunos controladores tienen un bit en el registro de control que se utiliza para inhibirlas interrupciones del controlador. Por ejemplo, el procesador puede inhibir las interrupciones del controlador de impresora poniendo un 0 en el bit 0 del registro de control (sin alterar el resto de los bits de este registro). El código necesario para hacer esta operación es: IN AND OUT AL, Rcont_imp AL, 11111110b; pone a 0 el bit 0 sin modificar los otros bits Rcont_imp, AL

El controlador deteclado no tiene registro de control (y por tanto, no tiene bit de inhibición de interrupciones. Las interrupciones en el controlador de disco se inhiben poniendo a 0 el bit 0 del registro de control Rcont_disc. A menos que se especifique lo contrario, supondremos que las interrupciones están permitidas en el controlador (es decir, el bit correspondiente del registro de control está a 1). Por tanto,la operación de inhibición de la interrupción será necesaria cuando se quiera realizar una sincronización por encuesta. En ese caso, además, antes de finalizar el programa deberán restaurarse las interrupciones inhibidas, volviendo a poner un 1 en el bit correspondiente del registro de control.

Detección de la petición por parte del procesador El procesador comprueba si hay alguna petición deinterrupción pendiente cada vez que acaba la ejecución de una instrucción y antes de iniciar el fetch de la instrucción siguiente. Así pues, el diagrama de estados que representa, de forma general, el proceso de ejecución de una instrucción de lenguaje máquina, es el siguiente:

1

Fetch

Decodificación

Búsqueda operandos

NO ¿Interrupción pendiente? SI Tratamiento EjecuciónAlmacenamiento resultado

Es importante comprender que una petición de interrupción que se produzca mientras el procesador está ejecutando una instrucción no será atendida por el procesador hasta que éste finalice la ejecución de la instrucción. Esta circunstancia puede resultar problemática cuando la instrucción en curso tiene un tiempo de ejecución grande, ya que en ese caso podría pasar un tiempoexcesivo entre el instante en que el controlador solicita la atención del procesador y el instante en que el procesador inicia la atención, pudiéndose producir como resultado un error de funcionamiento del sistema. ¿Qué harías cuando existe realmente este riesgo? Describir una situación en la que esto puede ocurrir. El procesador tiene un bit que le permite protegerse de las interrupciones. En el casodel i80X86, este bit es el IF (Interrupt flag) que está en la palabra de estado (EFLAGS). Mientras el bit IF esté a 0 el procesador ignorará cualquier petición de interrupción. El valor del bit IF se controla mediante dos instrucciones de lenguaje máquina (son instrucciones sin operandos): CLI STI pone el bit IF a 0 (inhibe las interrupciones en el procesador) pone el bit IF a 1 (permite las...
tracking img