1.4 El Concepto de Interrupciones

4
1.4 El concepto de interrupciones Una interrupción de software es una llamada a un procedimiento del sistema operativo. La mayoría de estos procedimientos, llamados manejadores de interrupciones, proporcionan la capacidad de entrada-salida a los programas de aplicaciones. Se utilizan para las siguientes tareas: • Mostrar caracteres y cadenas. • Leer caracteres y cadenas del teclado. • Mostrar texto a color. • Abrir y cerrar archivos. • Leer datos de archivos. • Escribir datos en archivos. • Establecer y obtener la hora y fecha del sistema. Instrucción INT La instrucción INT (llamada a un procedimiento de interrupción) llama a una subrutina del sistema que también se conoce como manejador de interrupciones. Antes de que se ejecute la instrucción INT, deben insertarse uno o más parámetros en los registros. Por lo menos, debe moverse al registro AH un número que identifi que al procedimiento específi co. Dependiendo de la función, tal vez haya que pasar otros valores a la interrupción en los registros. La sintaxis es: INT número (en donde número es un entero en el rango de 0 a FF hexadecimal.) Interrupciones comunes Las interrupciones de software llaman a rutinas de servicio de interrupciones (ISRs), que se encuentran en el BIOS o en DOS. Algunas interrupciones de uso frecuente son: INT 10h (Servicios de video). Procedimientos que muestran rutinas que controlan la posición del cursor, escriben texto a color, desplazan la pantalla y muestran gráfi cos de video.

description

Lenguaje de interfzEl Concepto de Interrupciones

Transcript of 1.4 El Concepto de Interrupciones

1.4 El concepto de interrupciones

Una interrupcin de software es una llamada a un procedimiento del sistema operativo. La mayora de estos procedimientos, llamados manejadores de interrupciones, proporcionan la capacidad de entrada-salida a los programas de aplicaciones. Se utilizan para las siguientes tareas:

Mostrar caracteres y cadenas. Leer caracteres y cadenas del teclado. Mostrar texto a color. Abrir y cerrar archivos. Leer datos de archivos. Escribir datos en archivos. Establecer y obtener la hora y fecha del sistema.

Instruccin INTLa instruccin INT (llamada a un procedimiento de interrupcin) llama a una subrutina del sistema que tambin se conoce como manejador de interrupciones. Antes de que se ejecute la instruccin INT, deben insertarse uno o ms parmetros en los registros. Por lo menos, debe moverse al registro AH un nmero que identifi que al procedimiento especfi co. Dependiendo de la funcin, tal vez haya que pasar otros valores a la interrupcin en los registros. La sintaxis es:

INT nmero (en donde nmero es un entero en el rango de 0 a FF hexadecimal.)

Interrupciones comunes

Las interrupciones de software llaman a rutinas de servicio de interrupciones (ISRs), que se encuentran en el BIOS o en DOS. Algunas interrupciones de uso frecuente son:

INT 10h (Servicios de video). Procedimientos que muestran rutinas que controlan la posicin del cursor,escriben texto a color, desplazan la pantalla y muestran grfi cos de video. INT 16h (Servicios de teclado). Procedimientos que leen el teclado y comprueban su estado. INT 17h (Servicios de impresora). Procedimientos que inicializan, imprimen y devuelven el estado de laimpresora. INT 1Ah (Hora del da). Procedimiento que obtiene el nmero de pulsaciones del reloj desde que seencendi el equipo, o establece el contador a un nuevo valor. INT 1Ch (Interrupcin de temporizador del usuario). Un procedimiento vaco que se ejecuta 18.2 vecespor segundo. INT 21h (Servicios de MS-DOS). Procedimientos que proporcionan entrada-salida, manejo de archivosy administracin de memoria. Tambin se conocen como llamadas a funciones de MS-DOS.

Manejo de interrupcionesEl BIOS y MS-DOS contienen manejadores de interrupciones que simplifican la entrada/salida, as como las tareas bsicas del sistema. Vimos muchos de stos: las rutinas INT 10h para la manipulacin del video, las rutinas INT 16h para el teclado, los servicios INT 21h de MS-DOS, etctera. Pero una parte igualmente importante del sistema operativo es su conjunto de manejadores de interrupciones, que responden a las interrupciones del hardware. MS-DOS nos permite sustituir cualquiera de estas rutinas de servicio con nuestras propias rutinas.

Tabla de vectores de interrupcin La clave de la fl exibilidad de MS-DOS recae en la tabla de vectoresde interrupcin que se encuentra en los primeros 1024 bytes de RAM (ubicaciones 0:0 a 0:03FF). La tabla16-2 contiene un corto ejemplo de entradas en la tabla de vectores. Cada entrada en la tabla (conocida comovector de interrupcin) es una direccin tipo segmento-desplazamiento de 32 bits, que apunta a una de lasrutinas de servicio existentes.

En cualquier computadora dada, los valores de los vectores variarn debido a las distintas versiones del BIOS y de MS-DOS. Cada vector de interrupcin corresponde a un nmero de interrupcin. En la tabla, la direccin del manejador de INT 0 (divisin entre cero) es 02C1:5186h. Para obtener el desplazamiento de cualquier vector de interrupcin, se multiplica su nmero de interrupcin por 4. Por ende, el desplazamiento del vector para INT 9h es 9 * 4, o 0024 hexadecimal.

Ejecucin de los manejadores de interrupciones Un manejador de interrupciones puede ejecutarse en una de dos formas:

1) Un programa de aplicacin que contenga una instruccin INT podra producir una llamada a la rutina, a lo cual se le conoce como interrupcin de software2) una interrupcin de hardware ocurre cuando un dispositivo de hardware (puerto asncrono, teclado, temporizador, etctera) enva una seal al chip Controlador de interrupciones programable.

Interrupciones de hardware

Una interrupcin de hardware se genera mediante el Controlador de interrupciones programable (PIC) Intel 8259, el cual indica a la CPU que debe suspender la ejecucin del programa actual y ejecutar una rutina de servicio de interrupcin. Por ejemplo, un carcter del teclado que espera en el puerto de entrada se perdera si la CPU no lo guarda, o los caracteres recibidos del puerto serial se perderan si no fuera por una rutina controlada por interrupciones, que los almacena en un bfer.

En ocasiones, los programas deben deshabilitar las interrupciones de hardware al realizar operaciones delicadas en los registros de segmento y la pila. La instruccin CLI (borra bandera de interrupcin) deshabilita las interrupciones, y la instruccin STI (establece bandera de interrupcin) habilita las interrupciones.

(Irvine, 2008, pgs. 435,436,548,549)